Note: The other languages of the website are Google-translated. Back to English

Warning

JUser: :_load: Unable to load user with ID: 8858

How to create drop down list with multiple checkboxes in Excel?

Many Excel users tend to create drop down list with multiple checkboxes in order to select multiple items from the list per time. Actually, you can’t create a list with multiple checkboxes with Data Validation. In this tutorial, we are going to show you two methods to create drop down list with multiple checkboxes in Excel.

Use List Box to create a drop down list with multiple checkboxes
A: Create a list box with source data
B: Name the cell which you will locate the selected items
C: Insert a shape to help output the selected items
Easily create drop down list with checkboxes with an amazing tool
More tutorials for drop down list...


Use List Box to create a drop down list with multiple checkboxes

As below screenshot shown, in current worksheet, all names in range A2:A11 will be the source data of the list box. Click on the button in cell C4 can output the selected items, and all selected items in the list box will be displayed in cell E4. To achieve this, please do as follows.

A. Create a list box with source data

1. Click Developer > Insert > List Box (Active X Control). See screenshot:

2. Draw a list box in current worksheet, right click it and then select Properties from the right-clicking menu.

3. In the Properties dialog box, you need to configure as follows.

  • 3.1 In the ListFillRange box, enter the source range you will display in the list (here I enter range A2:A11);
  • 3.2 In the ListStyle box, select 1 - fmList StyleOption;
  • 3.3 In the MultiSelect box, select 1 – fmMultiSelectMulti;
  • 3.4 Close the Properties dialog box. See screenshot:

B: Name the cell which you will locate the selected items

If you need to output all selected items into a specified cell such as E4, please do as follows.

1. Select the cell E4, enter ListBoxOutput into the Name Box and press the Enter key.

C. Insert a shape to help output the selected items

1. Click Insert > Shapes > Rectangle. See screenshot:

2. Draw a rectangle in your worksheet (here I draw the rectangle in cell C4). Then right click the rectangle and select Assign Macro from the right-clicking menu.

3. In the Assign Macro dialog box, click the New button.

4. In the opening Microsoft Visual Basic for Applications window, please replace the original code in the Module window with the below VBA code.

VBA code: Create a list with multiple checkboxes

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

Note: In the code, Rectangle1 is the shape name; ListBox1 is the name of the list box; Select Options and Pickup Options are the displayed texts of the shape; and the ListBoxOutput is the range name of the output cell. You can change them based on your needs.

5. Press Alt + Q keys simultaneously to close the Microsoft Visual Basic for Applications window.

6. Click on the rectangle button will fold or expand the list box. When the list box is expanding, checking the items in the list box, and then click the rectangle again to output all selected items into cell E4. See below demo:

7. And then save the workbook as an Excel MacroEnable Workbook for reusing the code in the future.


Create drop down list with checkboxes with an amazing tool

The above method is too multistep to handle easily. Here highly recommend the Drop-down List with Check Boxes utility of Kutools for Excel to help you easily create drop-down list with checkboxes in a specified range, current worksheet, current workbook or all opened workbooks based on your needs. See the below demo:
Download and try it now! ( 30-day free trail)

Besides the above demo, we also provide a step-by-step guide to demonstrate how to apply this feature to achieve this task. Please do as follows.

1. Open the worksheet that you have set data validation drop-down list, click Kutools > Drop-down List > Drop-down List with Check Boxes > Settings. See screenshot:

2. In the Drop-down List wit Check Boxes Settings dialog box, please configure as follows.

  • 2.1) In the Apply to section, specify the applying scope where you will create checkboxes for items in drop-down list. You can specify a certain range, current worksheet, current workbook or all opened workbooks based on your needs.
  • 2.2) In the Mode section, choose a style which you want to output the selected items;
  • Here takes the Modify option as an example, if you choose this, the cell value will be changed based on the selected items.
  • 2.3) In the Separator box, enter a delimiter which you will use to separate the multiple items;
  • 2.4) In the Text Direction section, select an text direction based on your needs;
  • 2.5) Click the OK button.

3. The last step, click Kutools > Drop-down List > Drop-down List with Check Boxes > Enable Drop-down List of Check Boxes to activate this feature.

From now on, when you click the cells with drop-down list in a specified scope, a list box will pop up, please select items by checking the checkboxes to output into cell as the below demo shown (Take the Modify mode as an example).

For more details of this feature, please visit here.

  If you want to have a free trial ( 30-day) of this utility, please click to download it, and then go to apply the operation according above steps.


Related articles:

Autocomplete when typing in Excel drop down list
If you have a data validation drop down list with large values, you need to scroll down in the list just for finding the proper one, or type the whole word into the list box directly. If there is method for allowing to auto complete when typing the first letter in the drop down list, everything will become easier. This tutorial provides the method to solve the problem.

Create drop down list from another workbook in Excel
It is quite easy to create a data validation drop down list among worksheets within a workbook. But if the list data you need for the data validation locates in another workbook, what would you do? In this tutorial, you will learn how to create a drop fown list from another workbook in Excel in details.

Create a searchable drop down list in Excel
For a drop down list with numerous values, finding a proper one is not an easy work. Previously we have introduced a method of auto completing drop down list when enter the first letter into the drop down box. Besides the autocomplete function, you can also make the drop down list searchable for enhancing the working efficiency in finding proper values in the drop down list. For making drop down list searchable, try the method in this tutorial.

Auto populate other cells when selecting values in Excel drop down list
Let’s say you have created a drop down list based on the values in cell range B8:B14. When you selecting any value in the drop down list, you want the corresponding values in cell range C8:C14 be automatically populated in a selected cell. For solving the problem, the methods in this tutorial will do you a favor.

More tutorials for drop down list...


The Best Office Productivity Tools

Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails...
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range...
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns... Prevent Duplicate Cells; Compare Ranges...
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
  • More than 300 powerful features. Supports Office/Excel 2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
kte tab 201905

Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
officetab bottom
Comments (67)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
This is fantastic. But will be better if the multi selection can be placed at where the cursor is active. Not necessarily what the code specifies.
Gazali Yakubu
This comment was minimized by the moderator on the site
This is exactly what I have been looking for, can the code be modified to allow the selected data to display in separate cells down the column? so instead of: Monday, Tuesday, Wednesday, display as. Monday Tuesday Wednesday
Chris M
This comment was minimized by the moderator on the site
This is just what i have been looking fo, is there a modification to the code that will put the next selection from the listbox in the next line. for eg one two three Instead of : one, two, three
Chris M
This comment was minimized by the moderator on the site
can you please explain how you have added ListBoxOutput on E4 cell
harshit
This comment was minimized by the moderator on the site
Hello How can copy this listbox for multi cells. Just copy and paste is not working. Could you please explain for example in each cells (E5,E6,E7,E8,...) how can i put this selection box?
gimmic
This comment was minimized by the moderator on the site
could you please explain how can i easily copy this listbox for 100 rows? (seperate listboxes for each of 100 rows)
gimmic
This comment was minimized by the moderator on the site
Once the output is done and press the button again, the previous selected items in the list box cannot be changed. How to resolve?
VBR looser
This comment was minimized by the moderator on the site
Thank you! It is great and it works!
MartSkot
This comment was minimized by the moderator on the site
I'm a newbie to this but can anyone tell me how to create a mult-selection ListBox that will open, e.g., when I select a name. I want the list box to fit in a single.
EXAMPLE: I have a list of names with contact info, etc. I want to create a duplicate Listbox for each name in my list. I'd like it to open automatically when I select a name and collapse back into the cell when I go to another row of info. Please advise. Thanks in advance.
Randy
This comment was minimized by the moderator on the site
Dear Randy,
Sorry can't solve this probem.
crystal
This comment was minimized by the moderator on the site
It works perfectly as per the instructions, However if I protect the sheet it gives and error. Any workaround for this?
Amit Sood
This comment was minimized by the moderator on the site
Work perfectly as per the Instructions. But, How can I use this on a Protected sheet. Currently If I use this after protecting the sheet It gives me and error "Run-time error '-2147024809 (80070057)': The Specified Value is out of Range"
Amit Sood
This comment was minimized by the moderator on the site
Dear Amit Sood,
Before protecting the worksheet, please format the Output cell as unlocked and then apply the below VBA code. Thank you for your comment.

Sub Rectangle2_Click()
Dim xSelShp As Shape, xSelLst As Variant, I As Integer
On Error Resume Next
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"
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) &amp; ";" &amp; xSelLst
End If
Next I
If xSelLst &lt;&gt; "" Then
Range("ListBoxOutput") = Mid(xSelLst, 1, Len(xSelLst) - 1)
Else
Range("ListBoxOutput") = ""
End If
End If
End Sub
crystal
This comment was minimized by the moderator on the site
"I have created a file using ActiveX list box as you are explained,there i have entered some data and and added some properties too.i have checked some data using the checkbox in the list ,and saved &amp; exit from the file. But while re-opening the file it's not showing any checked data..can anybody give me a suggestion to save those updationes."
Can anybody help me please.
Tech Support
This comment was minimized by the moderator on the site
Good Day,
Please place the below VBA code into ThisWorkbook code window.
In the code, Sheet6 is the default name of the worksheet which contains the List Box you want to retain the selections as below screenshot shown. And ListBox1 is the name of the list box. Please change them as you need.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call SaveSelections
End Sub

Private Sub Workbook_Open()
Call RestoreSelections
End Sub

Private Sub SaveSelections()

Dim arr() As Variant, i As Long, j As Long

With Sheet6.OLEObjects("ListBox1").Object
If .ListIndex &gt; 0 Then
For i = 0 To .ListCount - 1
If .Selected(i) Then
j = j + 1
ReDim Preserve arr(1 To j)
arr(j) = i
End If
Next
Names.Add Name:="Selections", RefersTo:=arr, Visible:=False
End If
End With

End Sub

Private Sub RestoreSelections()

Dim arr As Variant, i As Integer

arr = [Selections]

With Sheet6.OLEObjects("ListBox1").Object
For i = 1 To UBound(arr)
.Selected(arr(i)) = True
Next
End With

End Sub
crystal
This comment was minimized by the moderator on the site
Thank you for the reply sir ,but its not working in the case of my file , can u please send your mail id , so that i can mail you my file to you.
Thanks in advance
Tech Support
This comment was minimized by the moderator on the site
Dear manjusha isac,
Please send your file to zxm@addin99.com. Hope I can help.
crystal
This comment was minimized by the moderator on the site
Besides, you need to save the workbook as an Excel Macro-enabled Workbook, and activate the code every time you change the selections of the list box.
crystal
This comment was minimized by the moderator on the site
i want automatically update names in different columns. is it possible if possible kindly share me the code.
Milind Ghadi
This comment was minimized by the moderator on the site
AMAZING its working but after i close the excel and open it again the check from the checkbox is gone so if i click the button all list will be gone any solution for this
please someone help me
Thank you so much in advanced
Angel
This comment was minimized by the moderator on the site
Dear Angel,
We have published an article "How to save or retain selections of ActiveX list boxes in Excel?" which introduces method of saving the selections of list boxes after close and reopen the workbook.
You can follow this link to get more information: https://www.extendoffice.com/documents/excel/5051-excel-listbox-save-selection.html
crystal
This comment was minimized by the moderator on the site
amazing its working but i have one issue after i save the file and open it again the all check from the checkbox list is all gone
can you help me to this one thank you so much
mark
This comment was minimized by the moderator on the site
also, it changes the size of the list box and shape always after save and open again the file if someone has a solution for this issue please help me

thank you so much
mark
This comment was minimized by the moderator on the site
Dear mark,
We have published an article "How to save or retain selections of ActiveX list boxes in Excel?" which introduces method of saving the selections of list boxes after close and reopen the workbook.
You can follow this link to get more information: https://www.extendoffice.com/documents/excel/5051-excel-listbox-save-selection.html
crystal
This comment was minimized by the moderator on the site
Hello,

I am wondering if there is a way to direct the pickup options to more than one cell (not just E4), or make the selections a dropdown checklist so that I can select multiple options off a checklist, but do so repeatedly and independent of the other selections I've made. For example, how would I go about using the same list of pickup options to input a different selection of items to E5, E6, E7, etc. from the same pickup list.

Thank you
Elizabeth Katsman
This comment was minimized by the moderator on the site
Hi LizKats,
Please try the below code. Hope I can help. Thank you.

Sub Rectangle2_Click()

'Updated by Extendoffice 20200529

Dim xSelShp As Shape, xSelLst As Variant, i As Integer

Set xSelShp = ActiveSheet.Shapes(Application.Caller)

Set xLstBox = ActiveSheet.ListBox1

Dim xRg As Range

Dim xCount, xFNum, xR, xC As Integer

Dim xStr As String

If xLstBox.Visible = False Then

xLstBox.Visible = True

xSelShp.TextFrame2.TextRange.Characters.Text = "Pickup Options"

Else

xLstBox.Visible = False

xSelShp.TextFrame2.TextRange.Characters.Text = "Select Options"

Set xRg = Range("ListBoxOutput")

xCount = xLstBox.ListCount - 1

xStr = ""

For i = xLstBox.ListCount - 1 To 0 Step -1

If xLstBox.Selected(i) = True Then

xStr = xLstBox.List(i) &amp; ";" &amp; xStr

End If

Next i



If xRg.Value = "" Then

xRg.Value = xStr

Else

Set xRg = xRg.Offset(1, 0)

Do While xRg.Value &lt;&gt; ""

Set xRg = xRg.Offset(1, 0)

Loop

xRg.Value = xStr

End If

End If

End Sub
crystal
This comment was minimized by the moderator on the site
It is working fine, thanks a lot for your help. I have one issue here is that, all the output is coming in the same cell E4, how can we get the output in different cells Eg: output for C4 in E4, C5 in E5 ,C6 in E6 etc.
binoy
This comment was minimized by the moderator on the site
Good Day,
The problem you mentioned can't be solve yet.
crystal
This comment was minimized by the moderator on the site
Добрый день! Прошу помочь.
Как сделать так чтобы каждое значение выходило на новой клетке? чтобы по выходило по вертикали?
alcat
This comment was minimized by the moderator on the site
HELP!!! how output in different ranges (vertically)?
alcatel
This comment was minimized by the moderator on the site
Sub Rectangle2_Click()
'Updated by Extendoffice 20190924
Dim xSelShp As Shape, xSelLst As Variant, I As Integer
Dim xRg As Range
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"
Else
xLstBox.Visible = False
xSelShp.TextFrame2.TextRange.Characters.Text = "Select Options"
Set xRg = Range("ListBoxOutput")
For I = 0 To xLstBox.ListCount - 1
If xLstBox.Selected(I) = True Then
xSelLst = xLstBox.List(I)
xRg.Value = Mid(xSelLst, 1, Len(xSelLst))
Set xRg = xRg.Offset(1, 0)
End If
Next I
End If
End Sub
Jea Perez
This comment was minimized by the moderator on the site
Como puedo replicar éste ejercicio en las filas inferiores ?
How can I replicate this exercise in the rows below?
Jimmy
There are no comments posted here yet
Load More
Leave your comments
Posting as Guest
×
Rate this post:
0  Characters
Suggested Locations