Cách tạo và tô màu hàng theo Checkbox trong Excel

Checkbox rất hữu ích khi sử dụng để đánh dấu dữ liệu theo danh sách. Trong Excel, bạn sẽ dễ dàng tạo Checkbox với nhiều cách khác nhau như sử dụng ký hiệu Symbol hoặc sử dụng VBA thì bạn có thể tạo Checkbox từ ActiveX Control.

Tuy vậy, trong trường hợp bạn muốn tạo Checkbox cho 1 Range gồm nhiều hàng và cột thì 2 cách kể trên sẽ làm bạn khá vất vả. Thay vào đó, một cách dễ và khả thi hơn là sử dụng ký tự Font của Symbol và VBA để tạo sự kiện thay đổi trạng thái cho Checkbox.

Để dễ hình dung hơn về cách này, bạn hãy tham khảo tiếp bài hướng dẫn này nhé.

Cách tạo danh sách Checkbox trong Excel

Để tạo và tô màu hàng theo Checkbox bạn cần thực hiện các bước sau:

  • Tạo 2 Symbol đại diện cho Checkbox, bao gồm Check và UnCheck.
  • Tạo hàm VBA để bắt sự kiện khi Click chuột vào Cells.
  • Tô màu hàng theo trạng thái của Checkbox bằng công cụ Conditional Formatting.

Tạo 2 Symbol đại diện cho 2 trạng thái Check/ Uncheck của Checkbox

Từ tab Insert, bạn chọn Symbol (ở cuối tab) và thực hiện thêm Symbol cho 2 trang thái là Check và UnCheck.

cach-tao-va-to-mau-hang-theo-checkbox-trong-excel-155-2

Sau khi tạo 2 Symbol vào Cells, bạn thay đổi Font cột hoặc những Cells mà bạn muốn tạo Checkbox thành Font Wingdings. Tiếp đến, bạn chọn vào lần lượt 2 Symbol vừa tạo để xem và Copy lấy ký tự.

cach-tao-va-to-mau-hang-theo-checkbox-trong-excel-155-3

Như vậy, bạn sẽ có 2 ký hiệu:

  • þ: sẽ đại diện cho Checkbox ở trạng thái Check
  • ¨: đại diện cho Checkbox ở trạng thái bỏ Check.

Mục đích tạo 2 Symbol này là để bạn lấy được ký tự Font. Bạn không cần tạo cho các Cells còn lại vì sẽ được gán bằng lệnh VBA.

Lưu ý: Chỉ định dạng Font Wingdings mới có thể chuyển ký tự này thành Checkbox.

Tạo hàm bắt sự kiện khi Click chuột vào Cells

Tiếp đến, bạn cần tạo hàm trong VBA để bắt sự kiện khi Click chuột vào Cells. Nếu bạn muốn bắt sự kiện ở Sheet1 thì bạn cần vào Sheet1 để tạo hàm.

cach-tao-va-to-mau-hang-theo-checkbox-trong-excel-155-4

Trong đó,

  • Hàm Worksheet_SeletctionChange để bắt sự kiện thay đổi Cells. 💡 Sự kiện này sẽ thực thi bất cứ khi nào bạn thay đổi Cells trên bảng tính.
  • Sử dụng lệnh If Not Intersect(Target, Range(“A2:A13”)) Is Nothing Then để kiểm tra Cells vừa chọn có trong Range A2:A13 hay không. 💡 Intersect là lệnh lấy giao điểm, ví dụ nếu bạn chọn Cells A3 thì Target sẽ là Cells A3 và nó thuộc Range(“A2:A13”).
  • Khi thay đổi Cells và nằm trong điều kiện của Intersect, thì với 2 ký tự Symbol có được bạn cần viết một hàm IF đơn giản để kiểm tra: nếu ký hiệu là “þ” thì chuyển thành “¨”. Hoặc nếu là “¨” hay rỗng thì chuyển thành “þ”.
  • Ngoài ra, bạn hãy sử dụng On Error GoTo Err để bỏ qua lỗi khi chọn nhiều Cells 1 lúc.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Err 'bat loi
'kiem ta thay doi tai Range A2-> A13
If Not Intersect(Target, Range("A2:A13")) Is Nothing Then
'neu ky tu là þ (Checkbox duoc check) thi chuyen ve ky tu ¨
'va nguoc lai
If Target.Value = "þ" Then
Target.Value = "¨"
Else
Target.Value = "þ"
End If
End If
Err:
End Sub
Code language: VB.NET (vbnet)

Sau bước này, bạn đã tạo được Checkbox hoàn chỉnh rồi. Nếu muốn thay đổi màu mỗi khi Checkbox được Check hay Uncheck thì cách dưới đây sẽ giúp bạn.

Tô màu hàng theo trạng thái của Checkbox

Để tô màu hàng theo Checkbox thì bạn hãy sử dụng công cụ Conditional Formatting để xử lý.

Đầu tiên, bạn chọn toàn bộ bảng dữ liệu cần Format (bao gồm cả cột chứa Checkbox) và chọn Conditional Formattings > New Rule.

cach-tao-va-to-mau-hang-theo-checkbox-trong-excel-155-5

Trong bảng New Formatting Rule bạn cần chọn như sau:

  • (1): Use a formula to determine which cells to format
  • (2): Điều kiện so sánh. Bạn chọn Checkbox đầu tiên và so sánh với ký tự “þ”.
  • (3): Chọn màu để thay đổi khi điều kiện (2) đúng.
  • (4): OK để áp dụng Rule vừa tạo.
cach-tao-va-to-mau-hang-theo-checkbox-trong-excel-155-6

Sau các bước ở trên thì cuối cùng bạn sẽ tạo được Checkbox và mỗi khi Check hay UnCheck thì màu của hàng cũng sẽ thay đổi theo điều kiện.

cach-tao-va-to-mau-hang-theo-checkbox-trong-excel-155-7

Link tải file mẫu: ở đây.


OK! Cách tạo Checkbox bằng ký tự Symbol và VBA khá hữu ích và tiện hơn các cách thông thường khác. Đặc biệt cho các trường hợp cần tạo nhiều Checkbox liên tiếp nhau để khảo sát hay đánh dấu thông tin trong Excel.

Và cuối cùng, mình hy vọng thủ thuật nhỏ này sẽ giúp bạn giải quyết được vấn đề đang tìm kiếm.

Chúc các bạn thành công!

BÌNH LUẬN

Please enter your comment!
Please enter your name here