Ếch Xanh
Thành viên tích cực
- Tham gia
- 12/8/09
- Bài viết
- 865
- Được thích
- 1,572
Cái này chắc bạn phải dùng một cột phụ để lọc duy nhất sau đó lấy cột phụ này làm nguồn cho Combobox thôi.Em có một danh sách, Làm sao em có thể tạo một Combobox (trên Form) gọi danh sách (danhsach) kia lên, nhưng không được trùng tên và không có dòng trắng?
Kính xin các Anh Chị, Thầy Cô hướng dẫn.
Em xin cảm ơn.
Em có một danh sách, Làm sao em có thể tạo một Combobox (trên Form) gọi danh sách (danhsach) kia lên, nhưng không được trùng tên và không có dòng trắng?
Kính xin các Anh Chị, Thầy Cô hướng dẫn.
Em xin cảm ơn.
Vấn đề của bạn cũng là vấn đề tôi đang rất cần nên đã từng cố gắng mò (vì tất cả kiến thức về excel của tôi toàn do mò mà học được thôi, mong mọi người đừng cười nhé!) và đã từng thưc hiện theo cách làm cột phụ giống như anh huuthang_bd đã nói.Tôi làm cái này cho bạn tham khảo cái tôi đã biết và cũng rất mong được các thầy cô, anh chị trên diễn đàn xem và hướng dẫn thêm!Xin cảm ơn!
Em có một danh sách, Làm sao em có thể tạo một Combobox (trên Form) gọi danh sách (danhsach) kia lên, nhưng không được trùng tên và không có dòng trắng?
Kính xin các Anh Chị, Thầy Cô hướng dẫn.
Em xin cảm ơn.
Bạn thay đổi name "minhthien" là name động lấy các dòng có dữ liệu trong vùng Z2:Z65536Trường hợp không có dòng trắng tôi đang nghiên cứu, kính nhờ các Thầy, Cô, Anh, Chị giúp đỡ cho phần này!
Private Function UniqueList(ListRange As Range)
Dim Clls As Range, Dic
On Error Resume Next
Set Dic = CreateObject("Scripting.Dictionary")
For Each Clls In ListRange
If Not IsEmpty(Clls) Then Dic.Add Clls.Value, ""
Next Clls
UniqueList = Dic.Keys
End Function
Private Sub UserForm_Initialize()
With Range([A2], [A65536].End(xlUp))
ComboBox1.List() = UniqueList(.Cells)
End With
End Sub
Tôi khen bạn thật nhiệt tình, tuy nhiên Bạn làm như vậy vẫn chẳng ăn thua, vì khi tác giả muốn làm cột phụ và đã xác định rõ số lượng tên trong danh sách, thì chẳng dại gì mà hỏi đúng không bạn, tên khách hàng có thể phát sinh thêm chứ đâu có cố định vài người? Tôi nghĩ là vẫn làm theo theo cách của Anh HuuThang_bd, tuy nhiên, làm cột phụ (auto filter) là tạm thời (dùng name động) khi Form kích hoạt, sau đó khi thoát Form, cột phụ này tự động xóa.
Nè... nếu bạn dùng Advanced Filter cũng không cần cột phụ ---> Bạn làm như sau:tại anh không để ý là cái cột phụ đó tôi dùng advanced filter sẽ tự cập nhật danh sách mỗi lần mở file (vì đặt trong biến cố workbook open).Vấn đề là tôi đang tìm cách làm sao để khỏi làm cột phụ và bây giờ thì bài của thầy Ndu đã làm được rồi.Mặc dù nhìn vào chưa hiểu lắm nhưng lần nữa rất cảm ơn thầy Ndu!Có lẽ phải đi mua cuốn sách VBA của GPE thôi!.Chúc cả nhà một ngày vui vẻ và thành công!
P/s: dù sao cũng cảm ơn anh nhiều nhé!
Private Sub UserForm_initialize()
Dim Clls As Range
On Error Resume Next
With Range(Sheet1.[A1], Sheet1.[A65536].End(xlUp))
.AdvancedFilter 1, , , True
For Each Clls In Intersect(.Cells, .Offset(1)).SpecialCells(12)
If Not IsEmpty(Clls) Then ComboBox1.AddItem Clls
Next Clls
.Parent.ShowAllData
End With
End Sub
Bạn lưu ý vấn đề này (khá quan trọng)Đúng là giải quyết triệt để được vấn đề em đang cần (em bị bí vì không biết cách showAllDta như vậy). Cảm ơn thầy rất nhiều!Chúc thầy luôn mạnh khỏe để có nhiều bài viết hay cho diễn đàn!
Xin chào cả nhà,
Mình muốn lọc danh sách trong ComboBox có 2 cột thì phải làm sao? Mình có dùng thử code của Thầy NDU thì thấy chạy rất tốt nhưng dữ liệt chỉ ghi vào có 1 cột thôi.
Mọi người giúp mình với!