Giúp em code kiểm tra ngày tháng & Mã hàng hóa theo điều kiện! (1 người xem)

  • Thread starter Thread starter Hong.Van
  • Ngày gửi Ngày gửi
Liên hệ QC

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

Hong.Van

Busy
Tham gia
7/5/12
Bài viết
2,330
Được thích
1,767
Thầy cô & anh chị giúp em viết code như sau
1/ Tại sheet Main, cột B nhập ngày tháng, em có dùng Validation để giới hạn ngày nhập như sau: nhập ngày không được nhỏ hơn ngày 01/01/12 không lớn hơn ngày 31/12/12 ngày của cell dưới fải bằng hoặc lớn hơn cell trên
Do Validation có điểm yếu, nếu copy ngày ở chỗ khác rồi paste vào cột B, mặc dù không thỏa điều kiện thì Validation vẫn không thông báo!
Để kiểm tra được các ngày không fù hợp, em xin giúp code kiểm tra như sau: sau khi chạy code những cell nào không thỏa điều kiện nói trên thì cell đó sẽ tô màu vàng

2/ Tương tự để kiểm tra Mã hàng hóa, Từ cell K9 trở xuống của sheet Main, nếu Mã hàng hóa nào không có tên trong List Ma!$A$13:$A$94 thì cell đó sẽ tô màu vàng
-----
Trong File em có tạo các Name như sau:
1/ NgayDau =MA!$A$1
2/ NgayCuoi =MA!$A$2
3/ MHH =MA!$A$13:$A$94
Lưu ý: Name MHH có thể được tham chiếu dài hơn nữa để có thể nhập các Mã hàng hóa mới
Em cảm ơn. Chúc Thầy cô & anh chị hưởng một ngày Lễ vui vẻ!
P/s: em cũng biết sử dụng CF, nhưng vì dữ liệu rất nhiều nên muốn dùng code để kiểm tra.
 

File đính kèm

Lần chỉnh sửa cuối:
Thầy cô & anh chị giúp em viết code như sau
1/ Tại sheet Main, cột B nhập ngày tháng, em có dùng Validation để giới hạn ngày nhập như sau: nhập ngày không được nhỏ hơn ngày 01/01/12 không lớn hơn ngày 31/12/12 ngày của cell dưới fải bằng hoặc lớn hơn cell trên
Do Validation có điểm yếu, nếu copy ngày ở chỗ khác rồi paste vào cột B, mặc dù không thỏa điều kiện thì Validation vẫn không thông báo!
Để kiểm tra được các ngày không fù hợp, em xin giúp code kiểm tra như sau: sau khi chạy code những cell nào không thỏa điều kiện nói trên thì cell đó sẽ tô màu vàng

2/ Tương tự để kiểm tra Mã hàng hóa, Từ cell K9 trở xuống của sheet Main, nếu Mã hàng hóa nào không có tên trong List Ma!$A$13:$A$94 thì cell đó sẽ tô màu vàng
-----
Trong File em có tạo các Name như sau:
1/ NgayDau =MA!$A$1
2/ NgayCuoi =MA!$A$2
3/ MHH =MA!$A$13:$A$94
Lưu ý: Name MHH có thể được tham chiếu dài hơn nữa để có thể nhập các Mã hàng hóa mới
Em cảm ơn. Chúc Thầy cô & anh chị hưởng một ngày Lễ vui vẻ!
P/s: em cũng biết sử dụng CF, nhưng vì dữ liệu rất nhiều nên muốn dùng code để kiểm tra.
Thử dùng code củ chuối này xem sao (sử dụng AdvancedFilter):
PHP:
Sub ToMau()
    Sheets("Main").Activate
    ActiveSheet.UsedRange.Interior.ColorIndex = xlNone
    [G2].FormulaR1C1 = "=OR(R[7]C2<NgayDau,R[7]C2>NgayCuoi)"
    [B8:B65536].AdvancedFilter xlFilterInPlace, [G1:G2]
    If [B65536].End(xlUp).Row > 8 Then Range([B8], [B65536].End(xlUp)).Interior.ColorIndex = 6
    ActiveSheet.ShowAllData
    [G2].FormulaR1C1 = "=COUNTIF(MHH,R[7]C11)=0"
    [K8:K65536].AdvancedFilter xlFilterInPlace, [G1:G2]
    If [K65536].End(xlUp).Row > 8 Then Range([K8], [K65536].End(xlUp)).Interior.ColorIndex = 6
    ActiveSheet.ShowAllData
    [G2].ClearContents
End Sub
Tất nhiên có thể dùng vòng lặp For để duyệt qua tất cả các ô trong vùng dữ liệu cần tô màu nhưng mình nghĩ rằng cách này sẽ chậm hơn cách dùng AdvancedFilter.
 
Upvote 0
Thử dùng code củ chuối này xem sao (sử dụng AdvancedFilter):
Tất nhiên có thể dùng vòng lặp For để duyệt qua tất cả các ô trong vùng dữ liệu cần tô màu nhưng mình nghĩ rằng cách này sẽ chậm hơn cách dùng AdvancedFilter.
Cảm ơn sự giúp đỡ của anh
Mong anh hoặc các thầy cô & anh chị chỉnh sửa giúp em như sau
1/ Code kiểm tra ngày tháng chỉ thỏa điều kiện bằng hoặc lớn hơn NgayDau Và bằng hoặc nhỏ hơn NgayCuoi. Chưa thỏa điều kiện ngày của cell dưới fải bằng hoặc lớn hơn cell trên
Tại cell B9, trong Validation em có công thức sau
PHP:
=AND($B9>=NgayDau;$B9>=MAX($B$8:$B8);B9<=NgayCuoi)
2/ Khi chạy code, nó tô màu cho cả cell B8 & K8 là tiêu đề NgàyMã HH ở Sheet Main

Khi chạy code, nó bỏ chế độ Auto Filter ở Sheet Main. Em muốn sau khi chạy code nó fục hồi lại chế độ này được không?
Em cảm ơn
 
Upvote 0
Web KT

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

Back
Top Bottom