https://drive.google.com/file/d/1_JrM...
Cho hỏi: Có thể dùng VBA để: Chỉ cho phép nhập 3/5 ô theo từng ngày, nếu nhập trên 4 ô thì sẽ bôi đỏ cả 5 ô đó/ bôi đỏ ngày đó. Điều kiện 2: Không cho phép nhập 3 mã khách hàng khác nhau trong cùng 1 ngày hoặc bôi đỏ nếu nhập từ 3 mã khách hàng trở lên. (Vùng nhập dữ liệu là E5:J9 cho Loại 1 và E11:J15 cho Loại 2).
2. Nếu dùng VBA phức tạp, có thể dùng Conditional Formatting trong excel bằng cách nào để bôi đỏ các ô khi vi phạm điều kiện trên?
Câu hỏi của mình hơi dài, nếu chưa rõ thì cứ hỏi lại mình nhé. Thanks!
Mình trả lời như sau nhé:
1. Link drive của bạn mình chưa xem được, do khi chia sẻ bạn đang đặt chế độ riêng tư.
2. file mình làm mẫu:
https://drive.google.com/file/d/1INhH...
cách làm:
- với điều kiện chỉ nhập 3/5 ô thì dùng conditional formatitng bình thường, ko cần VBA. Đếm số ô có dữ liệu trên từng cột là được. Nếu lớn hơn 3 thì định dạng
- Với điều kiện chỉ nhập 2 mã khách, nhập nhiều hơn 2 mã thì tô màu => cần có VBA xét tổng số mã (không trùng lặp) => code VBA bạn có thể xem trong file, code này sử dụng 2 vòng lặp lồng nhau theo dòng và cột nên hơi phức tạp 1 chút. Bạn đọc kỹ code để hiểu.
Mục đích là tạo kết quả dòng tổng cộng: đếm số mã khách không trùng lặp => sau đó dùng CF theo giá trị dòng tổng cộng: nếu lớn hơn 2 thì tô màu cả cột đó.