How to make data validation list drop-down appear in first column of new row?

mlagrange
mlagrange used Ask the Experts™
on
Hello - I've got a data entry table of 10 columns and 100 rows. I've got col 1 (A) set up with a data validation list. It works fine on the existing 100 rows, but when I go down to row 101 and click in the cell at col A,  the list drop-down arrow does not appear until I actually make an entry in that cell, and move out of it. THEN I see the drop-down arrow appear, and the table expands to include this new row.  

How do you set up the table and/or data validation list to be available on the first blank row of a table?

(This table started out as a range; I selected it, and made a table out of it. Maybe that's my problem?)

This is in Excel 2010

Thanks
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
The table expansion happens after you enter the data and its not until then that validation information is added to the new row

you can past the validation into the rows below the table so the drop down appears before the table expansion (copy, past special, validation)
Top Expert 2010

Commented:
This seems to work:

1) Create your table

2) Resize your table so that it includes an empty row at the bottom

3) Add this code to the sheet module for the worksheet with the table, to force the table to resize with the extra blank row

Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim lo As ListObject
    Dim loRng As Range
    Dim loLastRow As Range
    
    Set lo = Me.ListObjects(1)
    Set loRng = lo.Range
    Set loLastRow = loRng.Rows(loRng.Rows.Count)
    
    If Not Intersect(loLastRow, Target) Is Nothing Then
        Application.EnableEvents = False
        lo.Resize loRng.Cells(1).Resize(loRng.Rows.Count + 1, loRng.Columns.Count)
        Application.EnableEvents = True
    End If
    
End Sub

Open in new window

Author

Commented:
Great! Thanks again!
HTML5 and CSS3 Fundamentals

Build a website from the ground up by first learning the fundamentals of HTML5 and CSS3, the two popular programming languages used to present content online. HTML deals with fonts, colors, graphics, and hyperlinks, while CSS describes how HTML elements are to be displayed.

Top Expert 2010

Commented:
Did you have a chance to review my suggestion?

Author

Commented:
Sorry Patrick - I just saw your post. I was wondering how to do that in code.

Thanks very much for your response.

Author

Commented:
Patrick - I am posting a 2nd question: "How would you do that in VBA?"
If you'll respond, I'll award you that one?

Thanks again

Mark
Patrick- nice piece of code, i'll be saving it for future use but it only works if you tab from last row of table - I tried change it to a selection change event so I can click below the table but it still fires too late - can you think of a better event to attach it to?
Top Expert 2010

Commented:
regmigrant,

I think you may have missed one of the key points: before deploying the code, you have to make sure that the table contains a blank row at the end.  Then, once a user actually populates a cell in that row, the table resizes.

Patrick
ah, even cooler

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial