Automatically Add New Items to Excel Data Validation Drop Down

There’s a sample Excel workbook on my Contextures website that uses a bit of Excel VBA to automatically add new items to an Excel data validation drop down list.

Add New Item to List

For example, if the drop down list shows Apple, Banana and Peach, you can type Lemon in the data validation cell.

Then, as soon as you press the Enter key, Lemon is added to the named range that the data validation list is based on.

The source list is sorted too, so that Lemon appears between Banana and Peach.

New item added to data validation drop down list
New item added to data validation drop down list

Read the Instructions

Someone emailed me last week, and asked if I would explain how the Excel VBA code works.

It rained (and even snowed a little) on Friday, so it was a good day to stay in, and work on a new page for the website.

If you’re interested in setting up a similar file, you can wander over to my  Contextures website, and read Excel Data Validation – Add New Items.

Watch the Video

Here’s a short video that demonstrates the file, and briefly explains how the code works.

You can watch this, if it’s too early in the day to read about Excel VBA code.

Download the Sample File

If you’d rather just play with the file, and figure it our for yourself, you can download the workbook from my Contextures website.

Go to the sample workbooks page, and in the data validation section, look for DV0021 – Update Multiple Validation Lists

It’s in Excel 2003 format, and contains macros. You can enable macros if you want to test the code.
___________

20 thoughts on “Automatically Add New Items to Excel Data Validation Drop Down”

  1. Is it possible to restrict the target range to column 2? I’m running a different code on another set of cells with data validation. When I’m working with the second set of DV cells the code errors out at
    If Intersect(Target, rngDV) Is Nothing Then GoTo exitHandler
    I tried adding this:
    If Target.Column 2 Then GoTo exitHandler
    When that didn’t work I changed this:
    If Target.Row > 4 Then
    to: If Target.Column = 2 Then
    but it still errors out.

    Thanks for all your great help, all the time!
    (I hope I tagged the code properly)

  2. Charlene, if you’re trying to restrict this to column 2, then the following should work:
    If Target.Column = 2 Then

    Or, if you want something different to happen in columns 2 and 4, you could use Select Case:
    Select Case Target.Column
    Case 2
    ‘column 2 code here
    Case 4
    ‘column 4 code here
    End Select

  3. Very instructive … would it be possible to also add a means so that all entries are captilized?
    I did try to insert in the code for both the working sheet and the list sheet the following:
    Target = UCase(Target) … but it kicked up and error?

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.