Tricks for creating dropdown lists that let you select multiple items

Our guest blogger Debra Dalgleish is a consultant specializing in Microsoft Office programming and development. She offers her Excel wisdom every week on the Contextures blog and has received the Excel MVP award every year since 2001.

At the Mystical Magic Factory*, one of the perks is that office employees get to disappear at noon on most Fridays. The office stays open though, so at least two people are on duty to answer the phones and greet visitors.

Before the magic

To keep track of who will stay in the office each week, Dee, the office manager, created an Excel file. This file contains a list of the employee names and a list of weeks. Dee created a dropdown list of employee names for each week.

The dropdown list works well for selecting one name, but if Dee selects a second name in a cell, it overwrites the first name.

Add the magic

To let Dee select multiple names in each cell, we’ll add a bit of magic to her worksheet with a few lines of VBA code. The code keeps the old name in the cell, and adds a comma, followed by the new name.

Let’s take a peek at the code and see how you can use this trick in your worksheets.

Behind the curtain

To see the code for a worksheet, right-click on its sheet tab and click View Code. That will open the Visual Basic Explorer (VBE).

In the project list at the left, the FridayStaffName workbook is listed, and the Friday_Staff sheet is highlighted. At the right, we can see the Worksheet_Change event code for that worksheet. That code runs automatically if Dee makes a change on the sheet.

Copy the code to your file

Even if you don’t know anything about programming, you could copy this code and use it in your workbook. There is one line of code that you can change, if your dropdown list is not in column B.

In the code, Target refers to the cell that you changed. In the screen shot below, the code checks to see which column that Target cell was in. Then, if it was column 2 (B), the rest of the code will run.

Instead of using column 2, you could change to a different number, or use multiple columns, such as: Case 2, 5, 6

Let the magic work for you

With this little bit of magic added to her worksheet, Dee can quickly and easily select the office staff for the Friday afternoon shifts. The phones will be answered while everyone else is off relaxing.

Thanks for this post! If I right-click on the sheet tab and view code, but nothing shows up in the code box in the Visual Basic, what might the issue be? Nothing shows up for my own workbook, or the FridayStaffNames file. I tried re-saving as macro enabled. Any advice?

This worked when I tried it, but as soon as I saved the document, closed it and then re-opened it, it would no longer work. I then made a copy of the file, removed the code and then reinserted it and worked again, but when it was closed – same thing happened, it no longer worked. What’s happening please?