Trần Văn Huệ
Trần Văn Huệ
Thảo luận 0 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 642 lượt xem

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

Oct 19 2020

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.

CÓ THỂ BẠN CŨNG QUAN TÂM: Học Excel online
Ngoài ra nếu bạn đang muốn biết nhiều hơn các thủ thuật, mẹo hay khi sử dụng Excel. Xin giới thiệu với các bạn khóa học EXG02 - Thủ thuật Excel cập nhật hàng tuần cho dân văn phòng hoặc EXG01 - Tuyệt đỉnh Excel - Trở thành bậc thầy Excel trong 16 giờ do Gitiho tổ chức. Khóa học sẽ do các chuyên gia có uy tín trực tiếp giảng dạy, sẽ giúp các bạn nhanh chóng nắm vững được những kiến thức về Excel.

Cùng tham gia cộng đồng hỏi đáp về chủ đề Tin học văn phòng

Thảo luận 0 câu trả lời
Lượt xem 642 lượt xem
Vỗ tay vỗ tay

0 Bình 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