Lọc bằng VBA với nhiều điều kiện (1 người xem)

Liên hệ QC

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

Upvote 0
Paste code vào sheet BC02
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sArr, dArr, I As Long, J As Long, K As Long, fDate As Date, tDate As Date, NV As String
fDate = Range("I2").Value2: tDate = Range("I3").Value2: NV = Range("C4").Value
sArr = Sheets("Counter").Range("A6", Sheets("Counter").Range("A" & Rows.Count).End(3)).Resize(, 27).Value
ReDim dArr(1 To UBound(sArr), 1 To 6)
If Target.Address = "$C$4" Then
    For I = 1 To UBound(sArr)
        If sArr(I, 22) Like NV Then
            If Int(sArr(I, 11)) >= fDate And Int(sArr(I, 11)) <= tDate Then
                K = K + 1
                dArr(K, 1) = K
                dArr(K, 2) = sArr(I, 27)
                dArr(K, 3) = sArr(I, 2)
                dArr(K, 4) = sArr(I, 8)
                dArr(K, 5) = sArr(I, 18)
                dArr(K, 6) = sArr(I, 17)
            End If
        End If
    Next
    If K Then
        With Range("A5").CurrentRegion.Offset(5)
            .ClearContents
            .Borders.LineStyle = 0
        End With
        Range("A6").Resize(K, 6).Value = dArr
        Range("A6").Resize(K, 6).Borders.LineStyle = 1
    End If
End If
End Sub
Cảm ơn bác. Code của bác đã hoạt động.
Tuy nhiên, nhờ bác bổ sung code để:
1. Khi lọc không có dữ liệu đủ điều kiện, thì có thông báo kết quả bằng MgsBox và xóa kết quả cũ để người dùng không nhầm kết quả của lần lọc cũ
2. Do việc nhập liệu về ngày và tên NV đôi lúc không theo thứ tự nên việc cho 3 Excel theo dõi cả 3 ô C4; I2; I3 để trả kết quả ngay lập tức.
Xin cảm ơn.
 
Upvote 0
Web KT

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

Back
Top Bottom