Select Multiple Items from Excel Data Validation List

Select Multiple Items from Excel Data Validation List

You’ve probably used an Excel data validation drop down list, where you can click the arrow, and select an item to fill the cell. With a bit of programming, you can customize a drop down list, to select multiple items.

Single Selection Drop Down

By default, data validation drop downs only allow you to select one item.

In the worksheet shown below, you can select a month from the drop down, and it overwrites any previous selection in that cell.

Data Validation Drop Down

Select Multiple Items From the Drop Down List

Instead of limiting users to a single selection, you can use a bit of programming, combined with the data validation list, and allow multiple selections.

You can display all the selected items across a row, or down a column, or keep them in the same cell.
Keep reading, to see some examples of this technique, and how it works.

There is also a video that shows the multiple selection drop down list. To try it for yourself, follow the download link f

Watch the Data Validation Video

To see these techniques, and a few other multiple selection examples, you can watch this short video.

_________________

336 thoughts on “Select Multiple Items from Excel Data Validation List”

  1. Dear Debra and other Forum members,
    I read through the original post and some of the comments. What I could not determine is whether it is possible to use this multiple choice lists with other dependent data validations. For example:
    In my sheet I have 4 dependent data validations in columns A-D. Selecting a value in A, limits the choices in Column B, Selecting the values in Column B, limits the choices available in Column C, selecting the values in column C, limits the choices in column D.
    However, selecting a choice in Column D, should provide a multiple choice list in column E, as more than one value may be applicable to the item that was selected in Column D.
    Is this possible?
    Is it possible to do this in more than one place in the same worksheet?
    Your assistance would be greatly appreciated.
    Regards,
    Louisa

  2. I purchased the Data Validation Multi-select premium in an attempt to create multiple drop downs on protected sheets. I used the instructions for the sample and instructions for the dependent lists workbook. I already had a sheet set up with lists on another workbook that is open and 16 single select and 4 multi-select. I tried to use your vba, just to reference on column with a validation (sample had 5 and I changed to 9) and that did not appear to work at all. Further, you guide states on page 32: “Click on any of the buttons, or the listbox, and you can see the selected control’s properties in the Properties window.” I cannot see “properties”
    Any help would be appreciated. I desperately need multiple drop downs on a protected sheet (the affected cells would be unlocked, of course).
    Thank you..

  3. Hi Debra,
    I have been using the coding succesfully for a spreadsheet at work. I am currently trying to analyse the data that I have accumulated and trying to count up the individual items in each multiple choice category. However, the CountIf function doesn’t seem to be working in Excel 2010.
    I wonder if there is a remedy for this, given that the function is only designed to work with single items in a dropdown?
    Christopher

  4. Hi Debra,
    Thank you for all of your hard work, it has been extremly helpful! If you do not mind, I have a followup question regarding a problem I have encountered with the SUMPRODUCT function.
    On a different sheet, I am collecting the totals for the available variables in the multiple selection dropdown. I have used the SUMPRODUCT function because I am only calculating the totals when they are considered a “new” case. The formula works fine, until there are multiple selections in a cell. SUMPRODUCT can no longer recognise the variable if there is more than one variable in a cell. Is there a way to fix this? It would be a great help, seeing as I am trying to calculate totals. I hope I was able to adequately convey the issue!
    Thanks in advance!

  5. This is a great piece of code and this forum has answered all my issues so far! However I am having the following issue that had been posted twice and went unanswered! I would greatly appreciate help! Thank you!
    Alex
    December 27, 2010 at 7:59 pm · Reply
    Hello Debra, I know the Same Cell example was simply an example, but I liked it alot and I added it to a worksheet as you know. I get a little problem that maybe you have made a fix for it.
    The code works great, but when I click on the drop-down list and for some reason click another cell in accident, it duplicates what ever is in the cell at the moment.
    Example: cell A1 currently has
    apples, pears, oranges in the cell
    for some reason, when I activate the cell A1 with the text, and then drag my mouse away and click some other cell, it generates duplicate data of whats inside cell A1. So I end up with: apples, pears, oranges, apples, pears, oranges.
    I un-checked ‘ignore blanks’ but it still happens.
    Any suggestions?
    Thank you,
    Alex

      1. Hi Sarah … can you share how the duplication in the same cell was fixed? I’m having the same issue and not having much luck finding a solution. Thanks in advance!

  6. Debra,
    Is it possible that you can select a max number of items in the cell?
    Example. max 3 dropdown items items in each cel?
    Thank you,
    Henk

    Option Explicit
    ' Developed by Contextures Inc.
    ' www.contextures.com
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngDV As Range
    Dim oldVal As String
    Dim newVal As String
    Dim lUsed As Long
    If Target.Count > 1 Then GoTo exitHandler
    On Error Resume Next
    Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
    On Error GoTo exitHandler
    If rngDV Is Nothing Then GoTo exitHandler
    If Intersect(Target, rngDV) Is Nothing Then
    'do nothing
    Else
    Application.EnableEvents = False
    newVal = Target.Value
    Application.Undo
    oldVal = Target.Value
    Target.Value = newVal
    If Target.Column = 11 Or Target.Column = 21 Or Target.Column = 31 Then
    If oldVal = "" Then
    'do nothing
    Else
    If newVal = "" Then
    'do nothing
    Else
    lUsed = InStr(1, oldVal, newVal)
    If lUsed > 0 Then
    If Right(oldVal, Len(newVal)) = newVal Then
    Target.Value = Left(oldVal, Len(oldVal) - Len(newVal) - 2)
    Else
    Target.Value = Replace(oldVal, newVal & ", ", "")
    End If
    Else
    Target.Value = oldVal _
    & ", " & newVal
    End If
    End If
    End If
    End If
    End If
    exitHandler:
    Application.EnableEvents = True
    End Sub

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.