?
Solved

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

Posted on 2014-02-25
9
Medium Priority
?
369 Views
Last Modified: 2014-02-26
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
0
Comment
Question by:mlagrange
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
  • 3
9 Comments
 
LVL 19

Accepted Solution

by:
regmigrant earned 2000 total points
ID: 39887210
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)
0
 
LVL 93

Expert Comment

by:Patrick Matthews
ID: 39887250
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

0
 

Author Closing Comment

by:mlagrange
ID: 39887251
Great! Thanks again!
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 93

Expert Comment

by:Patrick Matthews
ID: 39887271
Did you have a chance to review my suggestion?
0
 

Author Comment

by:mlagrange
ID: 39887274
Sorry Patrick - I just saw your post. I was wondering how to do that in code.

Thanks very much for your response.
0
 

Author Comment

by:mlagrange
ID: 39887283
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
0
 
LVL 19

Expert Comment

by:regmigrant
ID: 39887318
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?
0
 
LVL 93

Expert Comment

by:Patrick Matthews
ID: 39887761
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
0
 
LVL 19

Expert Comment

by:regmigrant
ID: 39888302
ah, even cooler
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This code takes an Excel list of URL’s and adds a header titled “URL List”. It then searches through all URL’s in column “A”, looking for duplicates. When a duplicate is found, it is moved to the top of the list. The duplicate URL’s are then highlig…
When you see single cell contains number and text, and you have to get any date out of it seems like cracking our heads.
This Micro Tutorial will demonstrate how to use a scrolling table in Microsoft Excel using the INDEX function.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

801 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question