Sửa code để giá trị lọc có thể thay đổi theo list Data Validation (1 người xem)

Liên hệ QC

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

DAOHUYENNEU

Thành viên chính thức
Tham gia
9/2/10
Bài viết
51
Được thích
2
Em có file test gởi kèm ạ,
File này hiện tại đang lọc theo 1 giá trị định sẵn. Nay em nhờ anh chị sửa giúp em code để khi em thay đổi giá trị trong Data validation tại ô A1 thì giá trị lọc cũng thay đổi theo chứ ko bị cố định nữa ạ.
Em cảm ơn các anh/chị nhiều ạ
 

File đính kèm

Em có file test gởi kèm ạ,
File này hiện tại đang lọc theo 1 giá trị định sẵn. Nay em nhờ anh chị sửa giúp em code để khi em thay đổi giá trị trong Data validation tại ô A1 thì giá trị lọc cũng thay đổi theo chứ ko bị cố định nữa ạ.
Em cảm ơn các anh/chị nhiều ạ

Bạn hay xóa đoạn code:
Mã:
Private Sub Worksheet_Activate()
    Call LocChon(ActiveSheet, "1", 4)
End Sub
Rồi copy đoạn code dưới đây paste vào nhé
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$1" Then
    Range("IV1") = "Column4": Range("IV2") = Target
    Sheet1.Range("A2:F10000").AdvancedFilter 2, Range("IV1:IV2"), Range("A2:F2")
    Range("IV1:IV2").Clear
  End If
End Sub
 
Upvote 0
em có file test gởi kèm ạ,
file này hiện tại đang lọc theo 1 giá trị định sẵn. Nay em nhờ anh chị sửa giúp em code để khi em thay đổi giá trị trong data validation tại ô a1 thì giá trị lọc cũng thay đổi theo chứ ko bị cố định nữa ạ.
Em cảm ơn các anh/chị nhiều ạ
thêm cách này nữa nhé
 

File đính kèm

Upvote 0
Bạn hay xóa đoạn code:
Mã:
Private Sub Worksheet_Activate()
    Call LocChon(ActiveSheet, "1", 4)
End Sub
Rồi copy đoạn code dưới đây paste vào nhé
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$1" Then
    Range("IV1") = "Column4": Range("IV2") = Target
    Sheet1.Range("A2:F10000").AdvancedFilter 2, Range("IV1:IV2"), Range("A2:F2")
    Range("IV1:IV2").Clear
  End If
End Sub
Em thử cách này của anh thấy ok lắm ạ, nhưng mà cho em hỏi chút là cái Range("IV1:IV2") có ý nghĩa thế nào ở đây ạ?
 
Upvote 0
Em thử cách này của anh thấy ok lắm ạ, nhưng mà cho em hỏi chút là cái Range("IV1:IV2") có ý nghĩa thế nào ở đây ạ?

Range("IV1:IV2") là vùng IV1:IV2
Vì code dựa trên công cụ advanced filter để lọc nên bắt buộc phải có vùng điều kiện... và tôi tạm dùng 2 cell IV1 và IV2 để đặt điều lọc (lọc xong xoá luôn vùng này)
Vậy thôi
 
Upvote 0
Range("IV1:IV2") là vùng IV1:IV2
Vì code dựa trên công cụ advanced filter để lọc nên bắt buộc phải có vùng điều kiện... và tôi tạm dùng 2 cell IV1 và IV2 để đặt điều lọc (lọc xong xoá luôn vùng này)
Vậy thôi
Dạ vâng ạ, em hiểu rồi ạ. Em cảm ơn anh nhiều ạ
 
Upvote 0
Em xin mạn phép nêu thêm 1 yêu cầu như sau ạ: Khi lựa chọn giá trị trong Data validation tại ô B1 và chọn tên cột lọc tại ô D1 (vd ở đây là B1=1 và D1=Column3 thì giá trị lọc sẽ là các dòng có cột Colum3 là 1) (file đính kèm).Anh/chị đã giúp em thì giúp cho trót với nhé, em cảm ơn nhìu nhìu ạ
 
Upvote 0
Em xin mạn phép nêu thêm 1 yêu cầu như sau ạ: Khi lựa chọn giá trị trong Data validation tại ô B1 và chọn tên cột lọc tại ô D1 (vd ở đây là B1=1 và D1=Column3 thì giá trị lọc sẽ là các dòng có cột Colum3 là 1) (file đính kèm).Anh/chị đã giúp em thì giúp cho trót với nhé, em cảm ơn nhìu nhìu ạ

Thấy người đẹp muốn nhảy vào giúp nhưng dọc cả chục lần vẫn không thể hiểu được người đẹp muốn gì? Em có thể mô tả thêm không?
 
Upvote 0
Thấy người đẹp muốn nhảy vào giúp nhưng dọc cả chục lần vẫn không thể hiểu được người đẹp muốn gì? Em có thể mô tả thêm không?
Hí hí, em ko đẹp như anh tưởng thì anh vẫn giúp chứ ạ.
Ý em là thế này.Em có sheet nguồn chứa dữ liệu như file em mô tả rồi nhé
Tại sheet lọc, sẽ có 2 điều kiện để chọn lọc là tại ô B1 và D1
em lấy ví dụ, em muốn lọc các giá trị mà ở cột D (tên cột là Column3) có giá trị = 1
Em nói thế anh hiểu chưa ạ?
 
Upvote 0
Em xin mạn phép nêu thêm 1 yêu cầu như sau ạ: Khi lựa chọn giá trị trong Data validation tại ô B1 và chọn tên cột lọc tại ô D1 (vd ở đây là B1=1 và D1=Column3 thì giá trị lọc sẽ là các dòng có cột Colum3 là 1) (file đính kèm).Anh/chị đã giúp em thì giúp cho trót với nhé, em cảm ơn nhìu nhìu ạ
Bạn tham khảo cách sử dụng ADO nhé.
 
Upvote 0
Em xin mạn phép nêu thêm 1 yêu cầu như sau ạ: Khi lựa chọn giá trị trong Data validation tại ô B1 và chọn tên cột lọc tại ô D1 (vd ở đây là B1=1 và D1=Column3 thì giá trị lọc sẽ là các dòng có cột Colum3 là 1) (file đính kèm).Anh/chị đã giúp em thì giúp cho trót với nhé, em cảm ơn nhìu nhìu ạ

Sửa code thành vầy:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$1" Or Target.Address = "$D$1" Then
    Range("IV1") = Range("D1"): Range("IV2") = Range("B1")
    Sheet1.Range("A2:F10000").AdvancedFilter 2, Range("IV1:IV2"), Range("A2:F2")
    Range("IV1:IV2").Clear
  End If
End Sub
 
Upvote 0
Bạn tham khảo cách sử dụng ADO nhé.
Em cảm ơn anh nhé. Nhưng không hiểu sao em ko tải file về đc ấy anh ạ.

Sửa code thành vầy:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$1" Or Target.Address = "$D$1" Then
    Range("IV1") = Range("D1"): Range("IV2") = Range("B1")
    Sheet1.Range("A2:F10000").AdvancedFilter 2, Range("IV1:IV2"), Range("A2:F2")
    Range("IV1:IV2").Clear
  End If
End Sub
Vâng ạ, em đã đổi lại thì thấy đúng như nhu cầu của em rồi anh ạ. Em cảm ơn nhiều nhé
 
Upvote 0

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

Back
Top Bottom