Nhờ viết code: làm thế nào dùng ComBobox phụ thuộc nhiều điều kiện (1 người xem)

  • Thread starter Thread starter Blad01
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

Blad01

Thành viên thường trực
Tham gia
6/10/07
Bài viết
350
Được thích
28
Chào các bạn. Mong các bạn giúp tôi vấn đề với Combobox.
Trong file đính kèm tôi có 3 vùng dữ liệu vùng 1 từ A2:A7, vùng 2 từ C2:C4, vùng 3 từ E2:E10 (dữ liệu của 3 vùng này có thể thêm, hoặc xóa). Vậy làm thế nào để tôi có thể đưa dữ liệu của 3 vùng này vào cùng một Combobox ?
Tôi cũng đã tham khảo trên diễn đàn và tự viết được đoạn code nối 3 vùng dữ liệu trên vào 1 Combobox nhưng chưa thành công vì trong list combobox còn khoảng trống giữa vùng 1 và vùng 3; dữ liệu ở vùng 3 chưa hiển thị được hết trong combobox. Code như sau:
Private Sub UserForm_Initialize()
Dim iRow As Integer
iRow = Range("A1").End(xlDown)
On Error Resume Next
ComboBox1.AddItem
For iRow = 2 To iRow
ComboBox1.AddItem Sheet1.Cells(iRow, 1)
Next iRow
For iRow = 2 To iRow
ComboBox1.AddItem Sheet1.Cells(iRow, 3)
Next iRow
For iRow = 2 To iRow
ComboBox1.AddItem Sheet1.Cells(iRow, 5)
Next iRow
End Sub
Rất mong các bạn giúp đỡ.
 

File đính kèm

Chào các bạn. Mong các bạn giúp tôi vấn đề với Combobox.
Trong file đính kèm tôi có 3 vùng dữ liệu vùng 1 từ A2:A7, vùng 2 từ C2:C4, vùng 3 từ E2:E10 (dữ liệu của 3 vùng này có thể thêm, hoặc xóa). Vậy làm thế nào để tôi có thể đưa dữ liệu của 3 vùng này vào cùng một Combobox ?
Tôi cũng đã tham khảo trên diễn đàn và tự viết được đoạn code nối 3 vùng dữ liệu trên vào 1 Combobox nhưng chưa thành công vì trong list combobox còn khoảng trống giữa vùng 1 và vùng 3; dữ liệu ở vùng 3 chưa hiển thị được hết trong combobox. Code như sau:

Rất mong các bạn giúp đỡ.
Bạn thử cái này xem
PHP:
Private Sub UserForm_Initialize()
    Dim Arr, Rng As Range, J As Long, cll, N As Long
    Dim Rng1 As Range, Rng2 As Range, Rng3 As Range
    With Sheet1
        Set Rng1 = .Range("A2", .Range("A65535").End(3))
        Set Rng2 = .Range("C2", .Range("C65535").End(3))
        Set Rng3 = .Range("E2", .Range("E65535").End(3))
        N = Rng1.Rows.Count + Rng2.Rows.Count + Rng3.Rows.Count
        ReDim Arr(1 To N)
        Set Rng = Union(Rng1, Rng2, Rng3)
        For Each cll In Rng
            If cll <> Empty Then
                J = J + 1
                Arr(J) = cll
            End If
        Next
    End With
    ComboBox1.List = Application.WorksheetFunction.Transpose(Arr)
End Sub
 
Upvote 0
Chào các bạn. Mong các bạn giúp tôi vấn đề với Combobox.
Trong file đính kèm tôi có 3 vùng dữ liệu vùng 1 từ A2:A7, vùng 2 từ C2:C4, vùng 3 từ E2:E10 (dữ liệu của 3 vùng này có thể thêm, hoặc xóa). Vậy làm thế nào để tôi có thể đưa dữ liệu của 3 vùng này vào cùng một Combobox ?
Tôi cũng đã tham khảo trên diễn đàn và tự viết được đoạn code nối 3 vùng dữ liệu trên vào 1 Combobox nhưng chưa thành công vì trong list combobox còn khoảng trống giữa vùng 1 và vùng 3; dữ liệu ở vùng 3 chưa hiển thị được hết trong combobox. Code như sau:

Rất mong các bạn giúp đỡ.
Trước đây tôi có viết hàm nối mảng 2 chiều, giờ bạn chỉ cần cho hàm này vào module rồi áp dụng thôi
Mã:
Private Sub UserForm_Initialize()
  Dim arr
  arr = Join2DArray(Sheet1.Range("A2:A100"), Sheet1.Range("C2:C100"), Sheet1.Range("E2:E100"))
  If IsArray(arr) Then Me.ComboBox1.List = arr
End Sub
Tóm lại: không cần quan tâm hàm Join2DArray viết cái gì, chỉ cần biết áp dụng là được
 

File đính kèm

Upvote 0
Upvote 0
Cảm ơn các bạn, tôi đã nối được nhiều vùng dữ liệu vào một combobox như hướng dẫn của bác ndu hay Horse. Nhưng còn một vấn đề tôi rất mong nhận được sự giúp đỡ của các bạn.
Trong file đính kèm tôi đã tạo một nút Button có tên là Danh sách cơ quan liên kết tới một userForm. Trong userForm này tôi đã thiết lập khi chọn phần "Cấp ủy các cấp" (combobox1) là "Đảng ủy cơ sở" thì ở phần "Tên đảng ủy cơ sở" (Combobox2) sẽ là danh sách tên của 18 đảng ủy cơ sở (danh sách được lấy từ vùng N3:N20 và danh sách này có thể được thêm hoặc xóa). Vấn đề tôi muốn là: Khi chọn một tên đảng ủy cơ sở nào đó trong Combobox2 thì ở Listbox sẽ hiển thị các chi bộ trực thuộc của đảng ủy đó. Ví dụ: ở Combobox2 là tên ĐU Công an thì trong Listbox sẽ hiển thị danh sách tên các chi bộ trực thuộc từ Q3:Q10,... (tên các chi bộ trực thuộc có thể được thêm mới hoặc xóa).
Tìm tòi gần hết buổi chiều mà chưa biết cách làm. Mong các bạn trong diễn đàn giúp đỡ. Trân trọng cảm ơn.
 

File đính kèm

Upvote 0
Cảm ơn các bạn, tôi đã nối được nhiều vùng dữ liệu vào một combobox như hướng dẫn của bác ndu hay Horse. Nhưng còn một vấn đề tôi rất mong nhận được sự giúp đỡ của các bạn.
Trong file đính kèm tôi đã tạo một nút Button có tên là Danh sách cơ quan liên kết tới một userForm. Trong userForm này tôi đã thiết lập khi chọn phần "Cấp ủy các cấp" (combobox1) là "Đảng ủy cơ sở" thì ở phần "Tên đảng ủy cơ sở" (Combobox2) sẽ là danh sách tên của 18 đảng ủy cơ sở (danh sách được lấy từ vùng N3:N20 và danh sách này có thể được thêm hoặc xóa). Vấn đề tôi muốn là: Khi chọn một tên đảng ủy cơ sở nào đó trong Combobox2 thì ở Listbox sẽ hiển thị các chi bộ trực thuộc của đảng ủy đó. Ví dụ: ở Combobox2 là tên ĐU Công an thì trong Listbox sẽ hiển thị danh sách tên các chi bộ trực thuộc từ Q3:Q10,... (tên các chi bộ trực thuộc có thể được thêm mới hoặc xóa).
Tìm tòi gần hết buổi chiều mà chưa biết cách làm. Mong các bạn trong diễn đàn giúp đỡ. Trân trọng cảm ơn.
Vòng vo tam quốc chi cho tốn công sức anh em (giờ mới nêu rõ), bài 1 mà bạn nêu làm thế nào dùng ComBo phụ thuộc thì đã xong mấy đời rồi.
Góp ý cho bạn:
Bạn theo dõi cái gì thì nên có 1 sheet theo dõi với tiêu đề đầy đủ, thì mới biết nội dung ComBo bạn nêu trên gán vô cột nào.

Còn không rõ ràng, nếu có thành viên giúp chắc bạn mò tới sáng.
 
Upvote 0
Vòng vo tam quốc chi cho tốn công sức anh em (giờ mới nêu rõ), bài 1 mà bạn nêu làm thế nào dùng ComBo phụ thuộc thì đã xong mấy đời rồi,
Vì không biết diễn giải thế nào nên mới phải làm vậy, mong bác thông cảm ạ. Mong nhận được sự giúp đỡ của bác.
 
Upvote 0
Vì không biết diễn giải thế nào nên mới phải làm vậy, mong bác thông cảm ạ. Mong nhận được sự giúp đỡ của bác.
Ngoài nội dung trên em muốn có nút thêm hoặc xóa tên các cơ quan, đơn vị nữa. Nếu có thể được mong bác và các bạn giúp đỡ luôn thể.
 
Upvote 0
Vì không biết diễn giải thế nào nên mới phải làm vậy, mong bác thông cảm ạ. Mong nhận được sự giúp đỡ của bác.
Tôi chỉ góp ý vậy để bạn hỏi cho có đầu có đuôi, nhất là kèm 1 sheet theo dõi với tiêu đề đầy đủ để các thành viên biết đường mà trợ giúp cho chính xác, nếu không thì sẽ phải hỏi và trả lời dài dài.

Nhất là cái Form của bạn cũng phải thiết kế lại cho phù hợp với tiêu đề sheet theo dõi cần nhập liệu.

Kể cả sheet TenCoQuan của bạn cũng phải sắp xếp lại mới ra cái kết quả phụ thuộc như bạn nêu tại bài 5.
 
Upvote 0
Kể cả sheet TenCoQuan của bạn cũng phải sắp xếp lại mới ra cái kết quả phụ thuộc như bạn nêu tại bài 5.
Bạn có thể giúp tôi sắp xếp lại và làm theo nội dung #5 được không ạ. Thực sự tôi không biết phải sắp xếp lại dữ liệu như thế nào cho phù hợp nữa. Tôi sắp xếp dữ liệu như vậy là để dễ viết code cho nút thêm hoặc xóa tên các cơ quan, đơn vị.
Với nút "THÊM" tôi có ý tưởng là: Trong combobox1 hoặc Combobox2 là tên cấp ủy nào thì khi thêm tên cơ quan, đơn vị trực thuộc sẽ tương ứng với cột, dòng của cấp ủy đó. Tương tự với nút "XÓA".
 
Upvote 0
Bạn có thể giúp tôi sắp xếp lại và làm theo nội dung #5 được không ạ. Thực sự tôi không biết phải sắp xếp lại dữ liệu như thế nào cho phù hợp nữa. Tôi sắp xếp dữ liệu như vậy là để dễ viết code cho nút thêm hoặc xóa tên các cơ quan, đơn vị.
Với nút "THÊM" tôi có ý tưởng là: Trong combobox1 hoặc Combobox2 là tên cấp ủy nào thì khi thêm tên cơ quan, đơn vị trực thuộc sẽ tương ứng với cột, dòng của cấp ủy đó. Tương tự với nút "XÓA".
Bài 9 tôi nêu "kèm 1 sheet theo dõi với tiêu đề đầy đủ", nhưng bạn cứ vòng vo tam quốc hoài, nên tôi sẽ không ý kiến nữa, bạn có thể tham khảo 1 File tương tự rồi tự làm, còn làm không được thì nhờ các thành viên khác giúp tiếp, File trong bài viết ở Link sau:
http://www.giaiphapexcel.com/dienda...hũy-giấy-chứng-nhận-quyền-sử-dụng-đất.111191/.
 
Upvote 0
Bài 9 tôi nêu "kèm 1 sheet theo dõi với tiêu đề đầy đủ", nhưng bạn cứ vòng vo tam quốc hoài, nên tôi sẽ không ý kiến nữa, bạn có thể tham khảo 1 File tương tự rồi tự làm, còn làm không được thì nhờ các thành viên khác giúp tiếp, File trong bài viết ở Link sau:
http://www.giaiphapexcel.com/diendan/threads/theo-dõi-quyết-định-hũy-giấy-chứng-nhận-quyền-sử-dụng-đất.111191/.
Cảm ơn bạn rất nhiều, được bạn và mọi người trong diễn đàn giúp đỡ đó là sự may mắn cho tôi lắm lắm. Vì mong muốn được các bạn giúp nên tôi không có gì phải dấu diếm cả, chỉ là tôi và bạn chưa hiểu những yêu cầu của nhau mà thôi (vì trong file gốc tôi đang làm không cần phải có 1 sheet theo dõi với tiêu đề đầy đủ như bạn yêu cầu, nên tôi chưa hiểu điều bạn nêu ở bài 9). Sau đây tôi sẽ đưa file gốc tôi đang làm lên để bạn hiểu mục đích của tôi hơn (do file gốc có quá nhiều biểu và nhiều userform nên tôi chỉ để lại 1 biểu lấy ví dụ mà thôi, cho dung lượng file giảm bớt).
Trong Sheet TRANG CHỦ tôi tạo một nút Command Button có tên là TÙY CHỈNH TÊN CƠ QUAN với mục đích là để quản lý tên các cơ quan, đơn vị trong sheet TenCoQuan, nút này gồm các chức năng thêm mới, chỉnh sửa hoặc xóa tên cơ quan, đơn vị và một listbox để xem tên cơ quan, đơn vị đó có trong sheet TenCoQuan. Do tôi chưa làm chủ được ngôn ngữ lập trình VBA nên không biết phải sắp xếp dữ liệu như thế nào để thuận tiện cho việc viết code (mong các bạn góp ý có thể sắp xếp lại cho phù hợp).
Tên các đơn vị, cơ quan trong sheet TenCoQuan tôi sắp xếp theo từng nhóm, vùng như tiêu đề trong dòng 2:2. Vì thế tôi mong muốn khi thêm mới, chỉnh sửa hoặc xóa tên cơ quan ở nhóm nào thì tên cơ quan ở nhóm đó sẽ được thêm mới, chỉnh sửa hoặc xóa đi.
Rất mong bạn và các bạn trong diễn đàn nghiên cứu giúp đỡ.
 

File đính kèm

Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom