Lọc dữ liệu tương ứng với sheet cùng tên với cột ngày cuối cùng có dữ liệu

Liên hệ QC

Loc Uyen

Thành viên thường trực
Tham gia
9/6/14
Bài viết
334
Được thích
301
Cả nhà ơi, hiện tại em có cái code như vầy,
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim s As String
If Not Intersect(Target, Range("H6:H" & Rows.Count)) Is Nothing Then
s = Target.Offset(0, -6)
Sheets(6).Range("$A$1:J" & Rows.Count).AutoFilter Field:=6, Criteria1:=s
Sheets(6).Range("$A$1:J" & Rows.Count).AutoFilter Field:=10, Criteria1:="<50"
Sheets(6).Select
End If
End Sub.
Cũng do anh chị trong diễn đàn viết giúp để em dùng. hihi.
Code này đang ở các sheet Level 3, Level 4, Level 5, Level 6.
Hiện tại em muốn thay đổi chút xíu là khi cột ngày lớn nhất có dữ liệu (trong 4 sheet trên), Khi click vào các ô của cột đó thì dữ liệu sẽ lọc với sheet mang tên ngày tương ứng với điều kiện như Code hiện tại ạ.
Em gửi kèm file ạ,
Cám ơn cả nhà.
 

File đính kèm

Cả nhà ơi, hiện tại em có cái code như vầy,
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim s As String
If Not Intersect(Target, Range("H6:H" & Rows.Count)) Is Nothing Then
s = Target.Offset(0, -6)
Sheets(6).Range("$A$1:J" & Rows.Count).AutoFilter Field:=6, Criteria1:=s
Sheets(6).Range("$A$1:J" & Rows.Count).AutoFilter Field:=10, Criteria1:="<50"
Sheets(6).Select
End If
End Sub.
Cũng do anh chị trong diễn đàn viết giúp để em dùng. hihi.
Code này đang ở các sheet Level 3, Level 4, Level 5, Level 6.
Hiện tại em muốn thay đổi chút xíu là khi cột ngày lớn nhất có dữ liệu (trong 4 sheet trên), Khi click vào các ô của cột đó thì dữ liệu sẽ lọc với sheet mang tên ngày tương ứng với điều kiện như Code hiện tại ạ.
Em gửi kèm file ạ,
Cám ơn cả nhà.
Bạn xem code này đúng không.Bạn chỉnh hết ngày về Date đi nhé.
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim s As String
Dim a As Long, b As Long, max As Long
Dim i As Long
          If Not Intersect(Target, Range("H3:H" & Rows.Count)) Is Nothing Then
             s = Target.Offset(0, -6)
             For i = 3 To 6
                 b = WorksheetFunction.max(Sheets(i).Range("B2:b" & Rows.Count))
                 If max < b Then max = b: a = i
             Next i
             Sheets(a).Range("A1:J1").AutoFilter Field:=6, Criteria1:=s
             Sheets(a).Range("A1:J1").AutoFilter Field:=10, Criteria1:="<50"
             Sheets(a).Select
          End If
End Sub
 
Upvote 0
Bạn xem code này đúng không.Bạn chỉnh hết ngày về Date đi nhé.
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim s As String
Dim a As Long, b As Long, max As Long
Dim i As Long
          If Not Intersect(Target, Range("H3:H" & Rows.Count)) Is Nothing Then
             s = Target.Offset(0, -6)
             For i = 3 To 6
                 b = WorksheetFunction.max(Sheets(i).Range("B2:b" & Rows.Count))
                 If max < b Then max = b: a = i
             Next i
             Sheets(a).Range("A1:J1").AutoFilter Field:=6, Criteria1:=s
             Sheets(a).Range("A1:J1").AutoFilter Field:=10, Criteria1:="<50"
             Sheets(a).Select
          End If
End Sub
Em bỏ vào nó ko chạy được ạ, anh/chị giúp em với. Em cám ơn ạ
1544414137702.png
 
Upvote 0
Ý bạn là bây giờ không muốn để trong cột H nữa mà muốn là click vào bất kỳ đâu thì nó chạy và lọc theo điều kiện ngày à.Hay lọc theo điều kiện nào.
Ý em là, nếu ngày 8 là ngày cuối cùng có dữ liệu thì khi click vào cột I dữ liệu sẽ lọc ở sheet có tên là 08-Dec theo điều kiện của cột B và "<50", (còn nếu ngày 9 thì thì khi click vào cột J sẽ lọc sheet có tên là 09-Dec cũng theo điều kiện tương tự) cứ như vậy xét ạ.
 
Upvote 0
Ý em là, nếu ngày 8 là ngày cuối cùng có dữ liệu thì khi click vào cột I dữ liệu sẽ lọc ở sheet có tên là 08-Dec theo điều kiện của cột B và "<50", (còn nếu ngày 9 thì thì khi click vào cột J sẽ lọc sheet có tên là 09-Dec cũng theo điều kiện tương tự) cứ như vậy xét ạ.
Đây bạn xem có đúng ý không.
 

File đính kèm

Upvote 0
Đây bạn xem có đúng ý không.
Dạ gần đúng rồi ạ, có cách nào mà chỉ khi click vào cột cuối cùng có dữ liệu nó mới lọc theo điều kiện còn lại nó không lọc không ạ, Trường hợp này là chỉ click vào cột I nó mới chạy còn các cột khác thì không chạy ạ. Làm phiền anh/chị giúp em tí nữa ạ. Em cám ơn. :)
 
Upvote 0
Dạ gần đúng rồi ạ, có cách nào mà chỉ khi click vào cột cuối cùng có dữ liệu nó mới lọc theo điều kiện còn lại nó không lọc không ạ, Trường hợp này là chỉ click vào cột I nó mới chạy còn các cột khác thì không chạy ạ. Làm phiền anh/chị giúp em tí nữa ạ. Em cám ơn. :)
Đây bạn xem.
 

File đính kèm

Upvote 0
Code hiện tại đã chạy ổn giờ sếp em lại được voi đòi Hai Bà Trưng, sếp muốn là khi click vào bất kì ô nào của bất kì ngày nào trong 4 sheet (Level 3, Level 4, Level 5, Level 6), Thì dữ liệu tương ứng ở sheet ngày đó sẽ lọc theo điều kiện tại cột B ở 4 sheet trên và <50 ạ.
Ví dụ khi click vào Ô G3 của sheet Level 6, thì sẽ link sang sheet 05-Dec và lọc điều kiện cột F là BDFS-1-6-01 và cột J là <50.
Cả nhà sửa code giúp em với ạ.
Em cám ơn,
Em gửi file đính kèm ạ
 

File đính kèm

Upvote 0
Code hiện tại đã chạy ổn giờ sếp em lại được voi đòi Hai Bà Trưng, sếp muốn là khi click vào bất kì ô nào của bất kì ngày nào trong 4 sheet (Level 3, Level 4, Level 5, Level 6), Thì dữ liệu tương ứng ở sheet ngày đó sẽ lọc theo điều kiện tại cột B ở 4 sheet trên và <50 ạ.
Ví dụ khi click vào Ô G3 của sheet Level 6, thì sẽ link sang sheet 05-Dec và lọc điều kiện cột F là BDFS-1-6-01 và cột J là <50.
Cả nhà sửa code giúp em với ạ.
Em cám ơn,
Em gửi file đính kèm ạ
Đây bạn xem.
 

File đính kèm

Upvote 0
Tại em đâu biết VBA đâu, nên em muốn hỏi quy luật thế nào ý ạ. Dạ em cám ơn nhiều lắm ạ. Để ngồi ngâm cứu xem sao. Chúc anh/chị ngày vui ạ. :D
Nó là hàm excel mà.Hàm len với left đó.Dây là mình lấy tên của ô cells dòng thứ 2 và cột mà mình chỉ định vào.Rồi cắt đi các ký tự đằng sau.Cho nó giống tên sheets của bạn thôi mà.
 
Upvote 0
Nó là hàm excel mà.Hàm len với left đó.Dây là mình lấy tên của ô cells dòng thứ 2 và cột mà mình chỉ định vào.Rồi cắt đi các ký tự đằng sau.Cho nó giống tên sheets của bạn thôi mà.
Chắc em hiểu sai hay chưa rõ chỗ nào đó, em nói ra cái ý của em nghen.
Như cột I là 08-Dec lấy left 2 ký tự sẽ thành 08. Nhưng cái sheet 08-Dec của em lại là sheet thứ 7.@@. Hihi gà mờ nên ko hiểu lắm ý ạ. :(
 
Upvote 0
Web KT

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

Back
Top Bottom