Tìm kiếm tên trong validation (1 người xem)

Liên hệ QC

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

khanh_nguyentat

Thành viên mới
Tham gia
17/8/09
Bài viết
8
Được thích
0
Chào các bác,

Em sử dụng validation để chọn tên khách hàng trong cột A và dùng hàm vlookup để tìm mã khách hàng trong cột B. Vấn đề là ở chỗ tên khách hàng của em thì dài, và danh sách khách hàng hơn 1000 khách hàng (em chỉ đưa lên đây một vài làm ví dụ) và không theo qui tắc nào cả, nếu chọn trong cột xổ xuống của validation thì rất mất thời gian. Có cách nào em đánh tên của công ty trong một ô của cột A, excel sẽ hiển thị các lựa chọn có chứa tên đó giống như khi mình search google không? xin các bác chỉ giúp.
 

File đính kèm

Lần chỉnh sửa cuối:
Chào các bác,

Em sử dụng validation để chọn tên khách hàng trong cột A và dùng hàm vlookup để tìm mã khách hàng trong cột B. Vấn đề là ở chỗ tên khách hàng của em thì dài, và danh sách khách hàng hơn 1000 khách hàng (em chỉ đưa lên đây một vài làm ví dụ) và không theo qui tắc nào cả, nếu chọn trong cột xổ xuống của validation thì rất mất thời gian. Có cách nào em đánh tên của công ty trong một ô của cột A, excel sẽ hiển thị các lựa chọn có chứa tên đó giống như khi mình search google không? xin các bác chỉ giúp.
Bạn xem thử link này nha.
http://www.giaiphapexcel.com/forum/showthread.php?t=13752
 
cám ơn bác. Nếu dùng VBA thì sẽ làm như thế nào hả bác?
 
Bạn tham khảo file, tại cột tên khách hàng gõ Ctrl+m (Lưu ý con trỏ đang ở Listbox, bạn cứ gõ ký tự là được không phải về ô Textbox)
 

File đính kèm

Lần chỉnh sửa cuối:
Trả lời kỹ hơn về file bangkemuavao đươc không bạn!! thank nhiều

ok minh thấy rất hay nhưng để làm đuợc như thế soa khó tưởng tượng ra quá nhờ bạn hướng dẫn kỹ hơn từng bước nhé.
 
Bạn Sealand có thể giải thích cho mình phần tìm kiếm trong Listbox được không? Mình thấy rất hay
 
Đây là cơ chế lọc của file đó:

1-Điều kiện khởi động lọc:

Mã:
Private Sub TextBox1_Change()
TextBox1 = UCase(TextBox1)
nap
End Sub
2- Đây là sub lọc nạp lại listbox;
Mã:
Private Sub nap()
  Dim j, i As Long
    ListBox1.Clear
i = 2
j = 0
 Do While Sheet3.Cells(i, 1) <> ""
 If IIf(Me.CheckBox1, InStr(1, Sheet3.Cells(i, 1), TextBox1, 1) = 1, InStr(1, _
 Sheet3.Cells(i, 1), TextBox1, 1) > 0) Then
 With ListBox1
 .AddItem (Sheet3.Cells(i, 1))
.List(j, 1) = Sheet3.Cells(i, 2)
.List(j, 2) = Sheet3.Cells(i, 3)
.List(j, 3) = Sheet3.Cells(i, 4)
End With
 j = j + 1
End If
i = i + 1
 Loop
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
End Sub

Trình tự hoạt đông: Khi gõ vào textbox1 làm phát sinh Textbox1 _Change---->Nap lại Listbox theo điều kiện Textbox1
 
Mình vẫn đang mầy mò VBA mà lại nhảy cóc nên đụng đến đâu vỡ lòng đến đấy, mãi mới tra được lệnh "IIf" là gì. Giờ thì hiểu rồi. __--__
 
@Sealand: Cho mình hỏi ngoài lề một chút. Mình muốn tạo một code để khi nhấp đúp (double click) vào một dòng trong listbox (hay một kết quả tìm kiếm) thì nội dung các phần trong dòng đó tự điền vào textbox bên dưới thì phải làm sao? Chủ yếu là cần điền mã KH hoặc tên là được, các nôị dung còn lại dùng lệnh dựa vào điều kiện mã KH và tên để tìm thì mình rõ rồi
 
Web KT

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

Back
Top Bottom