Advanced Filter có nút CommandButtor (1 người xem)

  • Thread starter Thread starter haiqui
  • Ngày gửi Ngày gửi
Liên hệ QC

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

haiqui

Thành viên mới
Tham gia
10/4/08
Bài viết
3
Được thích
0
Em dùng hàm Advanced Filter để lọc dữ liệu có cùng tên sản phẩm. Nhưng mỗi lần muốn lọc từng tên sản phẩm thì ta lại phải vào Data/Filter/Advanced Filter. Chọn List range và Criteria range. Nếu ta làm như vậy thì sẽ mất thời gian.
Do đó em có gửi kèm theo file mong các anh chị hướng dẫn em cách sử dụng CommandButtor để khi mình gõ vào ô điều kiện tên 1 sản phẩm nào đó và chỉ cần click nút CommandButtor thì tên sản phẩm đó liệt kê ra.
 

File đính kèm

Em dùng hàm Advanced Filter để lọc dữ liệu có cùng tên sản phẩm. Nhưng mỗi lần muốn lọc từng tên sản phẩm thì ta lại phải vào Data/Filter/Advanced Filter. Chọn List range và Criteria range. Nếu ta làm như vậy thì sẽ mất thời gian.
Do đó em có gửi kèm theo file mong các anh chị hướng dẫn em cách sử dụng CommandButtor để khi mình gõ vào ô điều kiện tên 1 sản phẩm nào đó và chỉ cần click nút CommandButtor thì tên sản phẩm đó liệt kê ra.
Chép code này vào nút
Mã:
Private Sub CommandButton1_Click()
 Application.ScreenUpdating = False
    [d11].CurrentRegion.Clear
        With Range([a1], [a5000].End(xlUp)).Resize(, 2)
            .AutoFilter 1, [b18]
            .SpecialCells(12).Copy [d11]
            .AutoFilter
        End With
 Application.ScreenUpdating = True
End Sub
Nhập sản phẩm ở B18 ==> bấm nút ==> xem kết quả ở D11
 
Đã lọc ra loại sản phẩm rồi sao lại không tính tổng số lượng nó luôn nhỉ? (Tức lọc duy nhất). Bài này có thể dùng Pivot table để lọc thì hay nhất.
 
Cảm ơn anh.
Nhưng nếu mình muốn lọc dữ liệu trực tiếp trên bảng nhập liệu thì sao anh?
Khi mình chèn thêm dòng hoặc cột thì nút CommandButtor bị vô hiệu.
Mong anh chỉ giúp thêm.
 

File đính kèm

Lần chỉnh sửa cuối:
Cảm ơn anh.
Nhưng nếu mình muốn lọc dữ liệu trực tiếp trên bảng nhập liệu thì sao anh?
Khi mình chèn thêm dòng hoặc cột thì nút CommandButtor bị vô hiệu.
Mong anh chỉ giúp thêm.
Nếu chèn thêm cột hoặc hàng thì lúc này ô điều kiện của Bạn sẽ bị thay đổi (ô B8 và D11) và đoạn code trên sẽ sửa lại. Để ô điều kiện không bị thay đổi thì có thể đặt name hoặc cho nó sang 1 sheet lọc khác.
Mã:
Private Sub CommandButton1_Click()
 Application.ScreenUpdating = False
    [d11].CurrentRegion.Clear
        With Range("a1").[COLOR=red]CurrentRegion[/COLOR]
            .AutoFilter 1, [[COLOR=red]b18[/COLOR]]
            .SpecialCells(12).Copy [[COLOR=red]d11[/COLOR]]
            .AutoFilter
        End With
 Application.ScreenUpdating = True
End Sub
 
Dạ, nếu mình cho qua 1 sheet khác để lọc thì mã code có thay đổi gì không anh?
 
Dạ, nếu mình cho qua 1 sheet khác để lọc thì mã code có thay đổi gì không anh?
Vậy Bạn sửa code lại như sau:
Mã:
Private Sub CommandButton1_Click()
Dim enR As Long
 enR = Sheet1.Range("A65500").End(xlUp).Row
  Application.ScreenUpdating = False
    [A4].CurrentRegion.Clear
        With Sheet1.Range("A3:A" & enR).[COLOR=red]Resize(, 2)[/COLOR]
            .AutoFilter 1, [A2]
            .SpecialCells(12).Copy [A4]
            .AutoFilter
        End With
  Application.ScreenUpdating = True
End Sub
Bạn chú ý Resize(, 2) => Nếu vùng lọc của bạn bên sheet Data có nhiều hơn 2 cột thì thay số 2 bằng số cột của Bạn nhé!
 

File đính kèm

Chào anh. Em đã tải code của anh ở #7 nhưng khi click button Lọc thì lại không ra kết quả ạ. Mong được anh giúp đỡ. Em không rành code VBA ạ. Chỉ chỉnh sửa lại các ô lấy điều kiện lọc và hiện kết quả thôi ạ.
Em xin cảm ơn.
Đây là file Excel cần lọc đính kèm của em.
Chúc anh chị buổi sáng vui vẻ ạ :D :D :D
 

File đính kèm

Chào anh. Em đã tải code của anh ở #7 nhưng khi click button Lọc thì lại không ra kết quả ạ. Mong được anh giúp đỡ. Em không rành code VBA ạ. Chỉ chỉnh sửa lại các ô lấy điều kiện lọc và hiện kết quả thôi ạ.
Em xin cảm ơn.
Đây là file Excel cần lọc đính kèm của em.
Chúc anh chị buổi sáng vui vẻ ạ :D :D :D
Không rành bạn có thể Record Macro để xem nó tạo ra cái gì, chỉnh sửa lại 1 chút.
Bạn thay cái này cho cái cũ trong file của bạn thử xem:
PHP:
Private Sub CommandButton1_Click()
Dim eRw As Long
Application.ScreenUpdating = False
    Range("A10:P1000").ClearContents
    eRw = Sheets("Sheet1").Range("A60000").End(xlUp).Row
        Sheets("Sheet1").Range("A9:P" & eRw).AutoFilter Field:=5, Criteria1:=Sheets("Sheet2").Range("F3").Value
            Sheets("Sheet1").Range("A9:P" & eRw).Copy
    Sheets("Sheet2").Range("A9").PasteSpecial Paste:=xlPasteValues
        Sheets("Sheet1").Select
            Application.CutCopyMode = False
                Selection.AutoFilter
    Sheets("Sheet2").Select
    Range("F3").Select
Application.ScreenUpdating = True
End Sub
 
Không rành bạn có thể Record Macro để xem nó tạo ra cái gì, chỉnh sửa lại 1 chút.
Bạn thay cái này cho cái cũ trong file của bạn thử xem:
PHP:
Private Sub CommandButton1_Click()
Dim eRw As Long
Application.ScreenUpdating = False
    Range("A10:P1000").ClearContents
    eRw = Sheets("Sheet1").Range("A60000").End(xlUp).Row
        Sheets("Sheet1").Range("A9:P" & eRw).AutoFilter Field:=5, Criteria1:=Sheets("Sheet2").Range("F3").Value
            Sheets("Sheet1").Range("A9:P" & eRw).Copy
    Sheets("Sheet2").Range("A9").PasteSpecial Paste:=xlPasteValues
        Sheets("Sheet1").Select
            Application.CutCopyMode = False
                Selection.AutoFilter
    Sheets("Sheet2").Select
    Range("F3").Select
Application.ScreenUpdating = True
End Sub
Dạ em cảm ơn anh ạ. Anh cho em làm phiền tí xíu. Em click vô Button thì dữ liệu lọc ra rất đầy đủ ạ. Nhưng cột "Số Vé : F9" ở Sheet 2 lại k hiện ra dữ liệu ạ. Mong a giúp em lần nữa ạ.
Em xin cảm ơn.
Đây là file đính kèm của em.
 

File đính kèm

Dạ em cảm ơn anh ạ. Anh cho em làm phiền tí xíu. Em click vô Button thì dữ liệu lọc ra rất đầy đủ ạ. Nhưng cột "Số Vé : F9" ở Sheet 2 lại k hiện ra dữ liệu ạ. Mong a giúp em lần nữa ạ.
Em xin cảm ơn.
Đây là file đính kèm của em.
Lọc tên "NHU" chỉ có 1 dòng là có số vé, không hiện ra là sao?
Không cần bấm nút nữa, nhập vào ô F3, Enter là code lọc.
 

File đính kèm

À nó hiện ra 1 số rồi ạ. Do lỗi của em bấm format cell nên số nó thành 7,3824245E+12. Em đã sửa được rồi ạ. Cảm ơn anh rất nhiều ạ ^^
 
Web KT

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

Back
Top Bottom