Tìm kiếm theo từ khóa trong ListBox

Liên hệ QC

hsm.ksxd

Thành viên chính thức
Tham gia
24/8/17
Bài viết
77
Được thích
5
Giới tính
Nam
Em có 1 file excel Danh mục nghiệm thu. Trong đó có 2 sheet TCVN và DM NTCV. Em có tạo 1 userform như file đính kèm. Khi kích chuột phải vào các ô từ cột P đến cột Y thì userform sẽ hiện ra. Giờ em muốn khi mình gõ vào ô tìm kiếm trong UserForm thì danh mục Tiêu chuẩn Việt Nam trong Listbox sẽ lọc ra giá trị mình muốn tìm theo tên Tiêu chuẩn và bấm vào nút OK thì STT tiêu chuẩn sẽ được ghi vào ô được chon. Em không rành về VBA lắm. Mong mọi người giúp đỡ
 

File đính kèm

  • Nho giup ve Useform.xlsm
    73.3 KB · Đọc: 14
Em đã tìm trên diễn đàn theo từ khóa "Tìm kiếm theo từ khóa trong ListBox" nhưng thật sự là do trình độ còn kém quá nên không hiểu hết được ý nghĩa các code. Mong bác nào đi qua giúp em với ạ
 
Upvote 0
Bạn định gõ những gì vô ô tìm kiếm trong UserForm vậy? [STT], [Mã TC] hay [Tên TC]?
 
Upvote 0
Cảm ơn bạn nhưng thật sự trình VBA của mình còn kém quá nên không biết cách sử dụng. Mong có cao nhân nào đi qua làm hộ luôn thì tốt quá
Các cao nhân thì không giúp bạn đâu. Thôi thì mình mới tập tẹ nhưng cũng là dân làm HSQLCL mình áp dụng hàm Filter2DArray của thầy NDu bạn xem file thử xem sao
 

File đính kèm

  • Nho giup ve Useform (1).xlsm
    77.6 KB · Đọc: 50
Upvote 0
Các cao nhân thì không giúp bạn đâu. Thôi thì mình mới tập tẹ nhưng cũng là dân làm HSQLCL mình áp dụng hàm Filter2DArray của thầy NDu bạn xem file thử xem sao
Cảm ơn bạn nhiều. Mình đang dùng đt. Mai mình xem lại file rồi có gì không hiểu mong bạn giúp nha
 
Upvote 0
Các cao nhân thì không giúp bạn đâu. Thôi thì mình mới tập tẹ nhưng cũng là dân làm HSQLCL mình áp dụng hàm Filter2DArray của thầy NDu bạn xem file thử xem sao
OK. đúng ý mình rồi. Nhưng mình muốn nhờ bạn tý nữa được không? Bạn cho mình xin code sau khi chọn nhiều lựa chọn trong listbox , bấm vào nút OK thì STT tiêu chuẩn sẽ được ghi vào các ô từ cột P đến cột Y
 
Lần chỉnh sửa cuối:
Upvote 0
OK. đúng ý mình rồi. Nhưng mình muốn nhờ bạn tý nữa được không? Bạn cho mình xin code sau khi chọn nhiều lựa chọn trong listbox , bấm vào nút OK thì STT tiêu chuẩn sẽ được ghi vào các ô từ cột P đến cột Y
Chiều về mình làm cho. Mà tiêu chuẩn thì gộp nó vào 1 cột thôi . Khi sang biên bản NT dùng hàm hoặc Sub tách ra cho gọn và đỡ rối mắt :D
Theo mình bạn tạo mã hiệu công việc rồi gán TCNT cho mã hiệu. Như vậy khi gọi mã hiệu là có TCNT. Chứ làm như bạn hiện tại thì hơi mệt ...
 
Upvote 0
Chiều về mình làm cho. Mà tiêu chuẩn thì gộp nó vào 1 cột thôi . Khi sang biên bản NT dùng hàm hoặc Sub tách ra cho gọn và đỡ rối mắt :D
Theo mình bạn tạo mã hiệu công việc rồi gán TCNT cho mã hiệu. Như vậy khi gọi mã hiệu là có TCNT. Chứ làm như bạn hiện tại thì hơi mệt ...
Mình tách ra nhiều cột là để khi sử dụng userform mình sẽ chọn được TCNT theo ListBox. Vì mình sử dụng userform mỗi lần chỉ chọn được 1 TCNT thôi. Với lại khi xuất sang BBNT thì mỗi dòng tương ứng với 1 TCNT. Có cách nào gộp TCNT vào 1 cột mà vẫn chọn được nhiều TCNT trong ListBox không bạn?
 
Lần chỉnh sửa cuối:
Upvote 0
Cho mình hỏi thêm là khi thay đổi giá trị trong ô TextBox thì lựa chọn trong ô ListBox cũng không còn nữa. Ví dụ khi mình gõ "đất" vào ô textbox và mình chọn được TCVN 4447-2012. Nhưng khi mình xóa chữ "đất" để tìm Tiêu chuẩn khác thì dấu tích chọn TCVN 4447-2012 cũng không còn nữa. Có cách nào khi mình gõ từ khác thì lựa chọn trước đó vẫn được giữ nguyên không bạn?
 
Upvote 0
Bạn thử file xem sao nha
File của bạn rất hay. Mình hỏi tý
Mã:
1. Private Sub TxtFind_Change()
2.   Dim Arr, Arr1
3.  On Error Resume Next
4.  If Len(Trim(TxtFind.Value)) = 0 Then Me.DMTCVN.List() = sArray: Exit Sub
5.  Arr = Filter2DArray(sArray, 1, "*" & TxtFind.Value & "*", False)
6.  If Not IsArray(Arr) Then
7     Arr = Filter2DArray(sArray, 2, "*" & TxtFind.Value & "*", False)
8.        Arr = Filter2DArray(sArray, 3, "*" & TxtFind.Value & "*", False)
9.        If Not IsArray(Arr) Then DMTCVN.Clear: Exit Sub
10.    End If
11.    Me.DMTCVN.List() = IIf(Trim(TxtFind.Text) = "", sArray, Arr)
12.    End Sub
Arr ở dòng 5,7,8 có ý nghĩa là gì. Có phải nó lọc theo 3 cột không bạn?
TextBox MaTieuchuan dùng để làm gì mà mình gõ mã TC vào đó không thấy nó lọc gì cả?
 
Upvote 0
Cho mình hỏi thêm là khi thay đổi giá trị trong ô TextBox thì lựa chọn trong ô ListBox cũng không còn nữa. Ví dụ khi mình gõ "đất" vào ô textbox và mình chọn được TCVN 4447-2012. Nhưng khi mình xóa chữ "đất" để tìm Tiêu chuẩn khác thì dấu tích chọn TCVN 4447-2012 cũng không còn nữa. Có cách nào khi mình gõ từ khác thì lựa chọn trước đó vẫn được giữ nguyên không bạn?
https://www.facebook.com/100011406609466/videos/vb.100011406609466/462281730828710/?type=2&theater
Thế này á, mình dùng listview, nói chung cũng khó nhai cái vụ này lắm.
 
Upvote 0
File của bạn rất hay. Mình hỏi tý
Mã:
1. Private Sub TxtFind_Change()
2.   Dim Arr, Arr1
3.  On Error Resume Next
4.  If Len(Trim(TxtFind.Value)) = 0 Then Me.DMTCVN.List() = sArray: Exit Sub
5.  Arr = Filter2DArray(sArray, 1, "*" & TxtFind.Value & "*", False)
6.  If Not IsArray(Arr) Then
7     Arr = Filter2DArray(sArray, 2, "*" & TxtFind.Value & "*", False)
8.        Arr = Filter2DArray(sArray, 3, "*" & TxtFind.Value & "*", False)
9.        If Not IsArray(Arr) Then DMTCVN.Clear: Exit Sub
10.    End If
11.    Me.DMTCVN.List() = IIf(Trim(TxtFind.Text) = "", sArray, Arr)
12.    End Sub
Arr ở dòng 5,7,8 có ý nghĩa là gì. Có phải nó lọc theo 3 cột không bạn?
TextBox MaTieuchuan dùng để làm gì mà mình gõ mã TC vào đó không thấy nó lọc gì cả?

Cái ý chỉ lọc theo một cột thôi, muốn lọc theo nhiều cột chắc phải viết code lại.
 
Upvote 0
Web KT
Back
Top Bottom