Trong bài viết trước, chúng ta đã tìm hiểu về cách sử dụng ComboBox và tạo danh sách không trùng lặp. Hôm nay, hãy cùng Thủ Thuật nâng cao kiến thức về Combobox bằng cách tìm hiểu cách tạo Combobox phụ thuộc nhau trong Excel. Điều này có nghĩa là giá trị được chọn trong một Combobox sẽ ảnh hưởng đến danh sách hiển thị trong Combobox khác.
Bài viết này sẽ hướng dẫn bạn:
- Phân cấp danh sách theo Combobox
- Tạo Combobox tương ứng với từng danh sách
- Loại bỏ giá trị trùng lặp trong Combobox bằng VBA
- Tạo điều kiện phụ thuộc giữa các Combobox
1. Phân Cấp Danh Sách Theo Combobox
Để hiểu rõ hơn về phân cấp danh sách, hãy xem ví dụ sau:
Phân cấp danh sách
Hình trên minh họa: Mỗi nhân viên (cột C) thuộc một nhóm (cột B), và mỗi nhóm thuộc một bộ phận (cột A).
Vậy, ta có sự phân cấp danh sách như sau:
Bộ phận > Nhóm > Nhân viên
- Bộ phận: Danh sách cấp cao nhất (bậc 1)
- Nhóm: Danh sách cấp thấp hơn, phụ thuộc vào Bộ phận (bậc 2)
- Nhân viên: Danh sách cấp thấp nhất, phụ thuộc vào Nhóm (bậc 3)
Mục tiêu cần đạt được:
Mục tiêu 1
Mục tiêu 2
- Khi chọn một bộ phận trong Combobox1, danh sách nhóm trong Combobox2 sẽ thay đổi tương ứng.
- Khi chọn một nhóm trong Combobox2, danh sách nhân viên trong Combobox3 sẽ thay đổi tương ứng.
2. Tạo Combobox Tương Ứng Với Danh Sách
Vì có 3 danh sách, ta cần tạo 3 Combobox: Combobox1, Combobox2 và Combobox3.
Thứ tự sắp xếp các Combobox:
Sắp xếp Combobox
- Combobox1: Danh sách Bộ phận
- Combobox2: Danh sách Nhóm
- Combobox3: Danh sách Nhân viên
3. Loại Bỏ Giá Trị Trùng Lặp Trong Combobox
Danh sách Bộ phận và Nhóm có thể chứa các giá trị trùng lặp. Để loại bỏ chúng trong Combobox, ta có thể áp dụng phương pháp tương tự như bài viết trước. Đối với Combobox2 và Combobox3, việc lọc giá trị trùng sẽ kết hợp với việc tạo điều kiện phụ thuộc.
4. Tạo Điều Kiện Phụ Thuộc Giữa Các Combobox
Như đã đề cập, “Khi chọn một bộ phận trong Combobox1, danh sách nhóm trong Combobox2 sẽ thay đổi tương ứng“. Trong VBA, sự thay đổi này được gọi là sự kiện Combobox1_Change.
Tại Sheet chứa các Combobox (ví dụ: Sheet3), chọn đối tượng Combobox và sự kiện Change:
Chọn sự kiện Change
Code VBA như sau:
'Code VBA cho sự kiện Combobox1_Change sẽ được chèn tại đây. Do bài gốc không cung cấp code cụ thể nên không thể viết lại code hoàn chỉnh.
Để Combobox3 phụ thuộc vào Combobox2, ta thực hiện các bước sau:
- Tạo sự kiện Combobox2_Change.
- Sao chép nội dung của Combobox1_Change và dán vào Combobox2_Change.
- Chỉnh sửa code: Thay đổi biến
rng
từ cột A sang cột B. - Trong vòng lặp, thay đổi điều kiện thành
r = ComboBox2
. - Cuối cùng, thay đổi Combobox nhận dữ liệu thành
ComboBox3
.
'Code VBA cho sự kiện Combobox2_Change sẽ được chèn tại đây. Do bài gốc không cung cấp code cụ thể nên không thể viết lại code hoàn chỉnh.
Vậy là chúng ta đã hoàn thành việc tạo Combobox phụ thuộc.
Lưu ý: Combobox đôi khi gặp lỗi font chữ khi chọn giá trị tiếng Việt có dấu. Một số cách khắc phục:
- Sử dụng tiếng Việt không dấu.
- Liên kết Combobox với một ô trong worksheet để lấy kết quả chính xác (kết quả liên kết vẫn đúng dù hiển thị lỗi font).
- Sử dụng bộ gõ khác (cần thận trọng vì có thể lỗi font trên máy tính khác).
Kết quả
Hy vọng bài viết này giúp bạn hiểu rõ cách tạo Combobox phụ thuộc trong Excel bằng VBA. Đừng quên theo dõi Thủ Thuật để cập nhật thêm nhiều thủ thuật Excel hữu ích khác!
Discussion about this post