Lọc số theo điều kiện

Liên hệ QC

tranphuson

Thành viên thường trực
Tham gia
14/8/09
Bài viết
245
Được thích
9
Giới tính
Nam
Vui lòng giúp mình lọc điều kiện bằng VBA

Ví dụ: ở cột Z1 gõ vào số 5 (số này gõ tay và dò từ số gõ vào trở xuống) => thì sẽ tự động sort dữ liệu ở Cột I6 trong bảng dữ liệu (lấy số lượng từ 5 trở xuống) và sau đó hiện dữ liệu giống như copy từ cột C6:W dán ở Y6: AS

Xin cảm ơn
 

File đính kèm

  • Sort số theo điều kiện.xlsm
    37.7 KB · Đọc: 11
Vui lòng giúp mình lọc điều kiện bằng VBA

Ví dụ: ở cột Z1 gõ vào số 5 (số này gõ tay và dò từ số gõ vào trở xuống) => thì sẽ tự động sort dữ liệu ở Cột I6 trong bảng dữ liệu (lấy số lượng từ 5 trở xuống) và sau đó hiện dữ liệu giống như copy từ cột C6:W dán ở Y6: AS

Xin cảm ơn
Nếu lọc thì thử code củ chuối này xem sao.
Mã:
Sub Loc()
Dim i&, j&, Lr&, c&, d&
Dim Arr(), KQ()
With Sheets("Data")
    Lr = .Cells(Rows.Count, 1).End(xlUp).Row
    Arr = .Range("C6:W" & Lr).Value
    d = UBound(Arr, 1): c = UBound(Arr, 2)
    ReDim KQ(1 To d, 1 To c)
    For i = 1 To d
        DK = Arr(i, 7)
        If DK = .Cells(1, 26).Value Or DK > .Cells(1, 26).Value Then
        t = t + 1
            For j = 1 To c
                KQ(t, j) = Arr(i, j)
            Next j
        End If
    Next i
If t Then
    .[Y6].Resize(1000, c).ClearContents
    .[Y6].Resize(t, c) = KQ
End If
End With
End Sub
nếu có thể bạn làm thêm code sự kiện thay đổi sheet_change ) ở ô Z1 thì sẽ được tẹ động. Mình tin là bạn làm được
 
Nếu lọc thì thử code củ chuối này xem sao.
Mã:
Sub Loc()
Dim i&, j&, Lr&, c&, d&
Dim Arr(), KQ()
With Sheets("Data")
    Lr = .Cells(Rows.Count, 1).End(xlUp).Row
    Arr = .Range("C6:W" & Lr).Value
    d = UBound(Arr, 1): c = UBound(Arr, 2)
    ReDim KQ(1 To d, 1 To c)
    For i = 1 To d
        DK = Arr(i, 7)
        If DK = .Cells(1, 26).Value Or DK > .Cells(1, 26).Value Then
        t = t + 1
            For j = 1 To c
                KQ(t, j) = Arr(i, j)
            Next j
        End If
    Next i
If t Then
    .[Y6].Resize(1000, c).ClearContents
    .[Y6].Resize(t, c) = KQ
End If
End With
End Sub
nếu có thể bạn làm thêm code sự kiện thay đổi sheet_change ) ở ô Z1 thì sẽ được tẹ động. Mình tin là bạn làm
Báo lỗi này vui lòng hỗ trợ
1631176402066.png
 

File đính kèm

  • Sort số theo điều kiện.xlsm
    32.2 KB · Đọc: 0
Bạn thêm DK và ngay sau KQ(), là được mà. kiểu Dim Arr(),KQ(), DK
Mình đã bổ sung thêm khai báo DK - nhưng dữ liệu chạy ra không đúng yêu cầu
Đúng ra là khi gõ vào Z1 = 5 thì dữ liệu ở Cột AE sẽ lọc số lượng ở Cột I6 từ 5 trở xuống nhưng kết quả ở đây là số "chưa đúng" - Cảm ơn

1631177276184.png
 
Mình đã bổ sung thêm khai báo DK - nhưng dữ liệu chạy ra không đúng yêu cầu
Đúng ra là khi gõ vào Z1 = 5 thì dữ liệu ở Cột AE sẽ lọc số lượng ở Cột I6 từ 5 trở xuống nhưng kết quả ở đây là số "chưa đúng" - Cảm ơn

View attachment 265712
Có nghĩa là lọc ra những bản ghi nhỏ hơn 5 có phải không? nếu đúng là như vậy thì thay đổi dòng
If DK = .Cells(1, 26).Value Or DK > .Cells(1, 26).Value Then thành
If DK = .Cells(1, 26).Value Or DK < .Cells(1, 26).Value Then dấu > thành dấu < là được .
 
Có nghĩa là lọc ra những bản ghi nhỏ hơn 5 có phải không? nếu đúng là như vậy thì thay đổi dòng
If DK = .Cells(1, 26).Value Or DK > .Cells(1, 26).Value Then thành
If DK = .Cells(1, 26).Value Or DK < .Cells(1, 26).Value Then dấu > thành dấu < là được .
Cảm ơn bạn đã hỗ trợ
 
Web KT
Back
Top Bottom