Hướng dẫn cách tạo danh sách thả xuống với nhiều Checkboxes trong Excel

Nội dung được viết bởi Trần Văn Huệ

Nhiều người dùng Excel có xu hướng tạo danh sách thả xuống với nhiều hộp kiểm (Checkboxe) để chọn nhiều mục từ danh sách mỗi lần. Trên thực tế, bạn không thể tạo danh sách có nhiều hộp kiểm với xác thực dữ liệu (Data Validation). Trong hướng dẫn này, Gitiho sẽ chỉ cho bạn hai phương pháp để tạo danh sách thả xuống với nhiều hộp kiểm trong Excel.

Sử dụng List Box để tạo danh sách xổ xuống với nhiều Checkboxes

Giống như hình ảnh dưới đây, trong trang tính hiện tại tất cả các tên trong phạm vi các ô từ A2:A11 sẽ là dữ liệu nguồn của hộp danh sách (List box). Khi bấm vào nút mũi tên trong ô C4 sẽ xuất hiện một danh sách với tất cả các mục, trong đó những mục được tích chọn sẽ hiển thị trong ô E4. 
 

Để đạt được điều này, bạn thực hiện theo các bước sau:

cách tạo danh sách thả xuống với nhiều Checkboxes trong Excel
 

Cách tạo một hộp danh sách với dữ liệu nguồn (Source Data)

Bước 1: Mở tệp dữ liệu Excel cần thực hiện.

Bước 2: Từ giao diện chính, truy cập thẻ Developer > Insert > List Box (Active X Control), giống như hình ảnh dưới đây.

cách tạo danh sách thả xuống với nhiều Checkboxes trong Excel
 

Bước 2: Kích giữ chuột trái vào vùng trống trong trang tính rồi vẽ một hộp danh sách hình chữ nhật.

Bước 3: Kích chuột phải vào hộp danh sách vừa tạo và chọn tùy chọn Properties trong menu xổ xuống.

cách tạo danh sách thả xuống với nhiều Checkboxes trong Excel
 

Bước 4: Trong hộp thoại Properties hiển thị, bạn cần thiết lập cấu hình như sau.

cách tạo danh sách thả xuống với nhiều Checkboxes trong Excel
 

- Trong hộp ListFillRange, nhập phạm vi nguồn mà bạn sẽ hiển thị trong danh sách (như trong ví dụ này, phạm vi nguồn là A2:A11);
 

- Tiếp theo tại hộp ListStyle ở ngay phía dưới, chọn tùy chọn 1 - fmList StyleOption ;

- Tại hộp tùy chọn MultiSelect, chọn tùy chọn 1 - fmMultiSelectMulti ;

- Đóng hộp thoại Properties.

Đặt tên cho ô bạn sẽ định vị các mục đã chọn
 

Nếu bạn cần xuất tất cả các mục đã chọn vào một ô cụ thể chẳng hạn như E4 thì thực hiện như sau: 

Bước 1: Kích chọn ô E4, nhập ListBoxOutput vào hộp tên ở góc trên cùng bên trái của bảng dữ liệu Excel và nhấn phím Enter, giống như hình dưới đây.

cách tạo danh sách thả xuống với nhiều Checkboxes trong Excel
 

Chèn một hình dạng để xuất các mục đã chọn

Bước 1: Cũng trong giao diện bảng dữ liệu Excel, truy cập vào menu Insert > Shapes > Rectangle. 

cách tạo danh sách thả xuống với nhiều Checkboxes trong Excel
 

Bước 2: Vẽ một hình chữ nhật trong trang tính của bạn (như trong ví dụ này chúng tôi vẽ hình chữ nhật trong ô C4). Sau đó kích chuột phải vào hình chữ nhật và chọn Assign Macro từ menu chuột phải.

cách tạo danh sách thả xuống với nhiều Checkboxes trong Excel
 

Bước 3: Trong hộp thoại Assign Macro, bấm nút New. 

cách tạo danh sách thả xuống với nhiều Checkboxes trong Excel
 

Bước 4: Trong cửa sổ Microsoft Visual Basic for Applications hiển thị. Bạn copy đoạn mã dưới đây và dán vào trong cửa sổ modul hiển thị.

Sub Rectangle1_Click()
'Updated by Extendoffice 20200730
Dim xSelShp As Shape, xSelLst As Variant, I, J As Integer
Dim xV As String
Set xSelShp = ActiveSheet.Shapes(Application.Caller)
Set xLstBox = ActiveSheet.ListBox1
If xLstBox.Visible = False Then
    xLstBox.Visible = True
    xSelShp.TextFrame2.TextRange.Characters.Text = "Pickup Options"
    xStr = ""
    xStr = Range("ListBoxOutput").Value
     
    If xStr <> "" Then
         xArr = Split(xStr, ";")
    For I = xLstBox.ListCount - 1 To 0 Step -1
        xV = xLstBox.List(I)
        For J = 0 To UBound(xArr)
            If xArr(J) = xV Then
              xLstBox.Selected(I) = True
              Exit For
            End If
        Next
    Next I
    End If
Else
    xLstBox.Visible = False
    xSelShp.TextFrame2.TextRange.Characters.Text = "Select Options"
    For I = xLstBox.ListCount - 1 To 0 Step -1
        If xLstBox.Selected(I) = True Then
        xSelLst = xLstBox.List(I) & ";" & xSelLst
        End If
    Next I
    If xSelLst <> "" Then
        Range("ListBoxOutput") = Mid(xSelLst, 1, Len(xSelLst) - 1)
    Else
        Range("ListBoxOutput") = ""
    End If
End If
End Sub

Lưu ý: Trong mã, Rectangle1 là tên hình dạng (shape name); ListBox1 là tên của hộp danh sách (list box); Select Options và Pickup Options là các văn bản được hiển thị của hình dạng; ListBoxOutput là tên dải ô của ô đầu ra. Bạn có thể thay đổi chúng dựa trên nhu cầu của bạn.
 

Bước 5: Bấm đồng thời tổ hợp phím Alt + Q để đóng cửa sổ Microsoft Visual Basic for Applications.

Bước 6: Kích vào nút hình chữ nhật sẽ gấp hoặc mở rộng hộp danh sách. Khi hộp danh sách đang mở rộng, hãy kiểm tra các mục trong hộp danh sách, sau đó bấm lại vào hình chữ nhật để xuất tất cả các mục đã chọn vào ô E4. 

cách tạo danh sách thả xuống với nhiều Checkboxes trong Excel
 

Bước 7: Cuối cung bạn lưu tệp Excel lại, trong hộp thoại Save as hiển thị, đặt tên cho tệp Excel, chọn nơi lưu và chọn định dạng lưu tệp tại khung Save as type là Excel Macro-Enabled Workbook rồi bấm nút Save để hoàn tất.  

Trên đây Gitiho vừa hướng dẫn cách tạo danh sách thả xuống với nhiều Checkboxes trong Excel. Nếu các bạn biết thêm cách nào khác hãy chia sẻ cùng chúng tôi thông qua comment ở bên dưới nhé. Chúc các bạn thành công.

KHÓA HỌC EXCEL ONLINE HOÀN TOÀN MIỄN PHÍ

Khóa học với hơn 14000 HỌC VIÊN đang học và đánh giá trung bình 4.76 SAO

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông