Chào các bạn
Mình có gặp trường hợp sau mong các bạn giúp cho. Mình muốn lọc trong danh sách và các điều kiện sau đó cho liệt kê lên Combo Box
Cảm ơn nhiều.



Thay đổi tại H2 hoặc I2 để biết thêm chi tiết. Hỏi sao thì giúp vậy nhé.Chào các bạn
Mình có gặp trường hợp sau mong các bạn giúp cho. Mình muốn lọc trong danh sách và các điều kiện sau đó cho liệt kê lên Combo Box
Cảm ơn nhiều.
Sub GLL()
Dim Arr(), I, Dk
With Sheet1
.CB.Clear
Arr = .Range(.Range("A3"), .Range("D65536").End(xlUp)).Value
Dk = UCase(.[H2].Value & .[I2].Value)
For I = 1 To UBound(Arr)
If UCase(Trim(Arr(I, 1)) & Trim(Arr(I, 3))) = Dk Then
.CB.AddItem Arr(I, 4)
End If
Next I
End With
End Sub
Bạn muốn làm cái gì thì cần nêu cụ thể cái mình cần làm để các thành viên tiện bề giúp đỡ, chứ hỏi nữa chừng "muốn lọc danh sách theo điều kiện và liệt kê lên Combo Box" để làm cái gì? lại đi hỏi tiếp nữa sẽ mất thời gian mà kết quả lại không được như mong muốn.
Thay đổi tại H2 hoặc I2 để biết thêm chi tiết. Hỏi sao thì giúp vậy nhé.
Mã:Sub GLL() Dim Arr(), I, Dk With Sheet1 .CB.Clear Arr = .Range(.Range("A3"), .Range("D65536").End(xlUp)).Value Dk = UCase(.[H2].Value & .[I2].Value) For I = 1 To UBound(Arr) If UCase(Trim(Arr(I, 1)) & Trim(Arr(I, 3))) = Dk Then .CB.AddItem Arr(I, 4) End If Next I End With End Sub



Link là link như thế nào. Tôi viết code cho bạn, tôi còn đính kèm cả file lên. Bạn muốn thêm gì, bạn cũng nên chi tiết hơn chứ, tốt nhất là nên có cái fileCảm ơn bạn. Khi nhập vào H2 hoặc I2 thì code trên thực hiện được. Nhưng khi link từ cell khác đến H2 hoặc I2 thì ComboBox không thực hiện.
Bạn sửa lại code giúp mình với. Cảm ơn nhiều.
Link là link như thế nào. Tôi viết code cho bạn, tôi còn đính kèm cả file lên. Bạn muốn thêm gì, bạn cũng nên chi tiết hơn chứ, tốt nhất là nên có cái file
Paste vào Module code sau
Mã:Sub GPE() Dim Dic As Object, Arr, I As Long Set Dic = CreateObject("Scripting.Dictionary") With Sheet1 Arr = .Range("C3", .Range("D65536").End(3)).Value End With With Sheet2 For I = 1 To UBound(Arr) If Len(Arr(I, 1)) Then If Arr(I, 1) = .ComboBox2.Value Then If Not Dic.exists(Arr(I, 2)) Then Dic.Add Arr(I, 2), "" End If End If Next I .CB.List = Dic.keys End With End Sub
Paste vào sheet2(CHON) 2 code sau:
Mã:Private Sub ComboBox1_Change() GPE End Sub Private Sub ComboBox2_Change() GPE End Sub
Mã:Sub GPE() Dim Dic As Object, Arr, vArr As Range, I As Long, Mcty As Long, Cty As Long, Bp As String Set Dic = CreateObject("Scripting.Dictionary") With Sheet1 Arr = .Range("A3", .Range("D65536").End(3)).Value Set vArr = .Range("I9", .[I1000].End(3)) End With With Sheet2 Cty = Application.Match(.ComboBox1.Value, vArr, 0) Mcty = Sheet1.Range("H" & 8 + Cty) Bp = .ComboBox2.Value For I = 1 To UBound(Arr) If Arr(I, 1) = Mcty Then If Arr(I, 3) = Bp Then If Not Dic.exists(Arr(I, 4)) Then Dic.Add Arr(I, 4), "" End If End If Next I .CB.List = Dic.keys End With End Sub
Vùng mã của bạn đang để là số...nên tìm theo số...String thì sao được. Muốn gì thì úp file lên...(file ứng dụng thật). Không ai rảnh đâu mà sửa code cho bạn hoài nhé!