lọc dữ liệu đặc biệt

Liên hệ QC

dangphongpro2010

Thành viên mới
Tham gia
19/12/13
Bài viết
33
Được thích
4
Giới tính
Nam
Dear All,

mình cần lọc dữ liệu vật tư, chỉ cần nhập tên vật tư trong 1 ô thì dữ liệu sẽ tự lọc ra những dòng có chứa vật tư đó và khi clear thì các dòng trở lại như cũ, dạng như filter, nhưng mình muốn nhập tìm kiếm trong cell mình mặc định để thao tác cho nhanh, xin cảm ơn ạ
 

File đính kèm

Dear All,

mình cần lọc dữ liệu vật tư, chỉ cần nhập tên vật tư trong 1 ô thì dữ liệu sẽ tự lọc ra những dòng có chứa vật tư đó và khi clear thì các dòng trở lại như cũ, dạng như filter, nhưng mình muốn nhập tìm kiếm trong cell mình mặc định để thao tác cho nhanh, xin cảm ơn ạ
Bạn ghi macro cho filter và xem code của nó thế nào rồi sửa lại theo ý muốn của mình
 
Upvote 0
Dear All,

mình cần lọc dữ liệu vật tư, chỉ cần nhập tên vật tư trong 1 ô thì dữ liệu sẽ tự lọc ra những dòng có chứa vật tư đó và khi clear thì các dòng trở lại như cũ, dạng như filter, nhưng mình muốn nhập tìm kiếm trong cell mình mặc định để thao tác cho nhanh, xin cảm ơn ạ
Thử:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a, b(1 To 1000, 1 To 3), dk, i&, k&
    If Target.Address = "$C$2" Then
        dk = [C2].Value
        a = Sheets(1).Range("A2", Sheets(1).Range("A2").End(4)).Resize(, 2)
        Application.ScreenUpdating = False
        For i = 1 To UBound(a)
            If a(i, 2) = dk And dk <> Empty Then
                k = k + 1
                b(k, 1) = k
                b(k, 2) = a(i, 1)
                b(k, 3) = a(i, 2)
            End If
        Next 
        If k Then
            Range("D6").Resize(k, 3).ClearContents
            Range("D6").Resize(k, 3) = b
            Range("D6:F65000").Borders.LineStyle = xlNone
            Range("D6", Range("D65000").End(3)).Resize(, 3).Borders.LineStyle = 1
        Else
            Range("D6:F65000").Borders.LineStyle = xlNone
        End If
    End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn ghi macro cho filter và xem code của nó thế nào rồi sửa lại theo ý muốn của mình
ko làm được theo ý mình bạn ơi, bạn có thể giúp đỡ hơn ko, cảm ơn bạn nha :) , mình muốn nhập dữ liệu dò tìm trong cell lun, 1 lần thao tác 1 lần kết quả, vì mình cần dò tìm nhanh nhập dữ liệu
 
Upvote 0
ko làm được theo ý mình bạn ơi, bạn có thể giúp đỡ hơn ko, cảm ơn bạn nha :) , mình muốn nhập dữ liệu dò tìm trong cell lun, 1 lần thao tác 1 lần kết quả, vì mình cần dò tìm nhanh nhập dữ liệu
Có trời mới hiểu được " ý mình" .
 
Upvote 0
Thử:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a, b(1 To 1000, 1 To 3), dk, i&, k&
    If Target.Address = "$C$2" Then
        dk = [C2].Value
        a = Sheets(1).Range("A2", Sheets(1).Range("A2").End(4)).Resize(, 2)
        Application.ScreenUpdating = False
        For i = 1 To UBound(a)
            If a(i, 2) = dk And dk <> Empty Then
                k = k + 1
                b(k, 1) = k
                b(k, 2) = a(i, 1)
                b(k, 3) = a(i, 2)
            End If
        Next i
        If i Then
            Range("D6").Resize(i, 3).ClearContents
            Range("D6").Resize(i, 3) = b
            Range("D6:F65000").Borders.LineStyle = xlNone
            Range("D6", Range("D65000").End(3)).Resize(, 3).Borders.LineStyle = 1
        Else
            Range("D6:F65000").Borders.LineStyle = xlNone
        End If
    End If
End Sub
sao mình copy vào mà thấy nó ko hoạt động vậy bạn ơi. hic
Bài đã được tự động gộp:

Thử:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a, b(1 To 1000, 1 To 3), dk, i&, k&
    If Target.Address = "$C$2" Then
        dk = [C2].Value
        a = Sheets(1).Range("A2", Sheets(1).Range("A2").End(4)).Resize(, 2)
        Application.ScreenUpdating = False
        For i = 1 To UBound(a)
            If a(i, 2) = dk And dk <> Empty Then
                k = k + 1
                b(k, 1) = k
                b(k, 2) = a(i, 1)
                b(k, 3) = a(i, 2)
            End If
        Next i
        If i Then
            Range("D6").Resize(i, 3).ClearContents
            Range("D6").Resize(i, 3) = b
            Range("D6:F65000").Borders.LineStyle = xlNone
            Range("D6", Range("D65000").End(3)).Resize(, 3).Borders.LineStyle = 1
        Else
            Range("D6:F65000").Borders.LineStyle = xlNone
        End If
    End If
End Sub
à nó hoạt động rồi, haha, sorry nha, mình copy thiếu, nhưng mình muốn dữ liệu đó ô nào cần thì hiện ra, ô nào ko cần thì ẩn đi, chứ ko cần trích lọc ra ngoài, có thể được ko bạn, dạng như filter vậy, nhưng là nhập dữ liệu dò tìm bên ngoài ô thôi, vì mình muốn điền dữ liệu vào đúng dòng cho kết quả dò tìm được
 
Lần chỉnh sửa cuối:
Upvote 0
ko làm được theo ý mình bạn ơi, bạn có thể giúp đỡ hơn ko, cảm ơn bạn nha :) , mình muốn nhập dữ liệu dò tìm trong cell lun, 1 lần thao tác 1 lần kết quả, vì mình cần dò tìm nhanh nhập dữ liệu
Thử dùng kiểu này xem

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call Loc_Khong_Can_FilTer
End Sub

Sub Loc_Khong_Can_FilTer()
Dim DongCuoi As Long
DongCuoi = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
Dim VungDuLieu As Range
Set VungDuLieu = Sheet1.Range("A2:B" & DongCuoi)
VungDuLieu.AutoFilter field:=2, _
Criteria1:="*" & Sheet1.Range("C2").Value & "*"
End Sub
 

File đính kèm

Upvote 0
sao mình copy vào mà thấy nó ko hoạt động vậy bạn ơi. hic
Bài đã được tự động gộp:


à nó hoạt động rồi, haha, sorry nha, mình copy thiếu, nhưng mình muốn dữ liệu đó ô nào cần thì hiện ra, ô nào ko cần thì ẩn đi, chứ ko cần trích lọc ra ngoài, có thể được ko bạn, dạng như filter vậy, nhưng là nhập dữ liệu dò tìm bên ngoài ô thôi, vì mình muốn điền dữ liệu vào đúng dòng cho kết quả dò tìm được
Không chịu Filter thì Advanced Filter được không?
Chỉ có điều "vat tu 1", và "vat tu 10" đều "lấy tuốt".
 

File đính kèm

Upvote 0
Thử dùng kiểu này xem

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call Loc_Khong_Can_FilTer
End Sub

Sub Loc_Khong_Can_FilTer()
Dim DongCuoi As Long
DongCuoi = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
Dim VungDuLieu As Range
Set VungDuLieu = Sheet1.Range("A2:B" & DongCuoi)
VungDuLieu.AutoFilter field:=2, _
Criteria1:="*" & Sheet1.Range("C2").Value & "*"
End Sub

thật là hữu dụng, đúng như mong muốn luôn, nhưng file của mình trên 17 ngàn dòng, thấy nó ko có tác dụng, bạn có thể xem lại giúp mình được ko
 
Upvote 0
Không chịu Filter thì Advanced Filter được không?
Chỉ có điều "vat tu 1", và "vat tu 10" đều "lấy tuốt".
cảm ơn bạn Ba Tê nhiều nha, thật là đúng như cái mình yêu cầu lun, search ra kết quả như vậy cũng là hài lòng rồi :D:D, nhưng khi có khoảng dòng trống ở giữa dữ liệu thì nó ko đếm đến tận cùng dòng cuối, mà chỉ tới dòng trống là nó ngưng, mình đã xóa dòng trắng nên ko vấn đề gì
 
Upvote 0
Dear All,

mình cần lọc dữ liệu vật tư, chỉ cần nhập tên vật tư trong 1 ô thì dữ liệu sẽ tự lọc ra những dòng có chứa vật tư đó và khi clear thì các dòng trở lại như cũ, dạng như filter, nhưng mình muốn nhập tìm kiếm trong cell mình mặc định để thao tác cho nhanh, xin cảm ơn ạ
Sử dụng code vầy thôi:
Mã:
Sub Filter()
    Application.ScreenUpdating = False
    Sheet1.Range("SanPham").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range("TieuChi"), Unique:=False
    Application.ScreenUpdating = False
End Sub
Vào C2 chọn tên sản phẩm, D2 chọn tên vật tư rồi nhấn nút Filter hoặc chọn 1 trong 2 tùy theo nhu cầu.
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom