Nhờ các Anh/Chị giúp đỡ code cho textbox lọc dữ liệu bằng Advance filterTôi (1 người xem)

Liên hệ QC

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

nhanvutrong

Thành viên mới
Tham gia
23/2/13
Bài viết
5
Được thích
1
Nhờ các Anh/Chị giúp đỡ cho tôi vấn đề sau:

Tôi có một danh mục tên hàng hóa khoảng vài trăm ngàn dòng, do công việc mỗi khi tìm kiếm tên hàng hóa tôi thường sử dụng lệnh advance filter - contain (trên một cột) để lọc và chọn ra tên hàng đúng , tuy nhiên do thực hiện động tác trên quá nhiều lần nên tôi hy vọng có thể nhập tên tìm kiếm vào textbox, mỗi khi enter thì sẽ thực hiện lệnh trên, tiếp tục nhập tên hàng khác thì nhập xong lại enter để thực hiện. Rất cám ơn các Anh/Chị hỗ trợ code VBA cho trường hợp này.
 
Nhờ các Anh/Chị giúp đỡ cho tôi vấn đề sau:

Tôi có một danh mục tên hàng hóa khoảng vài trăm ngàn dòng, do công việc mỗi khi tìm kiếm tên hàng hóa tôi thường sử dụng lệnh advance filter - contain (trên một cột) để lọc và chọn ra tên hàng đúng , tuy nhiên do thực hiện động tác trên quá nhiều lần nên tôi hy vọng có thể nhập tên tìm kiếm vào textbox, mỗi khi enter thì sẽ thực hiện lệnh trên, tiếp tục nhập tên hàng khác thì nhập xong lại enter để thực hiện. Rất cám ơn các Anh/Chị hỗ trợ code VBA cho trường hợp này.

bạn hãy quay lại macro (bằng record macro) thao tác advanced filter đó, sau đó thì dọn dẹp lại code cho nó đẹp là được.
còn ko làm được thì đưa file lên mới thấy đường làm
 
Upvote 0
Việc ghi lại bằng record macro tôi đã sử dụng tuy nhiên để đưa giá trị cần lọc gán vào ô contain trong advance filter thì chưa được do điều kiện lọc không cập nhật các thông tin tôi nhập ở B3
(B3 : Vùng để nhập thông tin cần tìm; A6: A115 : Vùng filter)

Private Sub CommandButton1_Click()
Range("B3").Select
Selection.Copy
ActiveSheet.Range("$A$6:$A$115").AutoFilter Field:=1, Criteria1:="=**", _
Operator:=xlAnd
End Sub
 
Upvote 0
Việc ghi lại bằng record macro tôi đã sử dụng tuy nhiên để đưa giá trị cần lọc gán vào ô contain trong advance filter thì chưa được do điều kiện lọc không cập nhật các thông tin tôi nhập ở B3
(B3 : Vùng để nhập thông tin cần tìm; A6: A115 : Vùng filter)

sao bạn không đưa file lên?

bạn thử vậy xem
cái này là auto filter chư đâu fải advanced filter đâu bạn?

Private Sub CommandButton1_Click()
ActiveSheet.Range("$A$6:$A$115").AutoFilter Field:=1, [B3]
End Sub
 
Upvote 0
sao bạn không đưa file lên?

bạn thử vậy xem
cái này là auto filter chư đâu fải advanced filter đâu bạn?

Private Sub CommandButton1_Click()
ActiveSheet.Range("$A$6:$A$115").AutoFilter Field:=1, [B3]
End Sub

Tôi đính kèm file, nhờ các Anh/Chị hướng dẫn thêm, rất cám ơn
 

File đính kèm

Upvote 0
Nhờ các Anh/Chị giúp đỡ cho tôi vấn đề sau:

Tôi có một danh mục tên hàng hóa khoảng vài trăm ngàn dòng, do công việc mỗi khi tìm kiếm tên hàng hóa tôi thường sử dụng lệnh advance filter - contain (trên một cột) để lọc và chọn ra tên hàng đúng , tuy nhiên do thực hiện động tác trên quá nhiều lần nên tôi hy vọng có thể nhập tên tìm kiếm vào textbox, mỗi khi enter thì sẽ thực hiện lệnh trên, tiếp tục nhập tên hàng khác thì nhập xong lại enter để thực hiện. Rất cám ơn các Anh/Chị hỗ trợ code VBA cho trường hợp này.
Thay vì mô tả lung tung sao không gởi file lên xem bạn muốn thế nào. Loại này viêt code trong 5 phút là xong nếu nhìn thấy mặt mũi file của bạn
 
Upvote 0
Tôi đính kèm file, nhờ các Anh/Chị hướng dẫn thêm, rất cám ơn

Không biết bạn định làm gì, với mục đích chỉ làm với filter thì như vậy

hoặc bạn đưa code vào button (khi nhấn button thì nó chạy)
Private Sub CommandButton1_Click()
[A6:A1000].AutoFilter Field:=1, Criteria1:=[B3] & "*"
End Sub

và thận chí bạn cụng không cần button, khi gõ vào ô B3 bạn sẽ có ngay khi quả filter
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$3" Then [A6:A1000].AutoFilter Field:=1, Criteria1:=[B3] & "*"
End Sub
(nhấn phím Alt F11---> copy đoạn code này vào sheet1)
 
Upvote 0
Không biết bạn định làm gì, với mục đích chỉ làm với filter thì như vậy

hoặc bạn đưa code vào button (khi nhấn button thì nó chạy)
Private Sub CommandButton1_Click()
[A6:A1000].AutoFilter Field:=1, Criteria1:=[B3] & "*"
End Sub

và thận chí bạn cụng không cần button, khi gõ vào ô B3 bạn sẽ có ngay khi quả filter
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$3" Then [A6:A1000].AutoFilter Field:=1, Criteria1:=[B3] & "*"
End Sub
(nhấn phím Alt F11---> copy đoạn code này vào sheet1)

Rất cám ơn Anh, mình đã làm được rồi. Cám ơn tất cả mọi người giúp đỡ
 
Upvote 0
Việc ghi lại bằng record macro tôi đã sử dụng tuy nhiên để đưa giá trị cần lọc gán vào ô contain trong advance filter thì chưa được do điều kiện lọc không cập nhật các thông tin tôi nhập ở B3
(B3 : Vùng để nhập thông tin cần tìm; A6: A115 : Vùng filter)

Private Sub CommandButton1_Click()
Range("B3").Select
Selection.Copy
ActiveSheet.Range("$A$6:$A$115").AutoFilter Field:=1, Criteria1:="=**", _
Operator:=xlAnd
End Sub
Muốn lọc thì kiểu này cho nó sang
 

File đính kèm

Upvote 0
Đoạn code này đang sử dụng điều kiện lọc là begin with, mình muốn nó lọc theo Contain (có chứa các ký tự) thì mình sửa như thế nào bạn? Cám ơn bạn trước
 
Upvote 0
Đoạn code này đang sử dụng điều kiện lọc là begin with, mình muốn nó lọc theo Contain (có chứa các ký tự) thì mình sửa như thế nào bạn? Cám ơn bạn trước
PHP:
Private Sub TextBox1_Change()
Dim Sarr(), I, Darr(), J
With ActiveSheet
Sarr = .Range(.[A2], .[A65536].End(3)).Value
ReDim Darr(1 To UBound(Sarr), 1 To 1)
    For I = 1 To UBound(Sarr)
        If InStr(UCase(Sarr(I, 1)), UCase(.TextBox1)) Then
            J = J + 1
            Darr(J, 1) = Sarr(I, 1)
        End If
    Next
    .[E2:E1000].ClearContents
    If J Then .[E2].Resize(J) = Darr
End With
End Sub
 
Upvote 0

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

Back
Top Bottom