drop down list multiple columns

C

c

Greetings;
I have a question I am hoping someone will be able to help me with. My
overall goal is to create a dropdown list with a line of data in it. When
selected only the second half of the line will be shown in the cell.

What I plan on doing is entering all of my data into two columns (first
column + second = dropdown list, second column = what is shown in the cell).
I would then create a drop down list from multiple columns. Using alot of IF
statements in VBA with a Private Sub Worksheet_Change(ByVal Target As Range)
program that would chage the entry from first column and second column to
only second column.

I have two questions-
1) Is it even possible to have a dropdown list based on two cells?

2) Is there an easier way than this? Since I have about 100 entries and
may want to add more later.

Thanks in advance for any comments or suggestions.
c
 
D

Debra Dalgleish

There's a sample workbook on my web site that shows a product name and
code in the Data Validation dropdown list. After an item is selected,
the cell shows only the product name. You may be able to adapt this to
your workbook.

On the following page:

http://www.contextures.com/excelfiles.html

Under the data validation heading, find 'Data Validation "Columns"' and
download the file named DataValNameID.xls
 
C

c

Debra,
Thansk again for your help. I guess I should have looked a little harder at
your website.

Sincerely
C
 
C

c

I have run into one small problem with this code. It works excellent but
when I try to manually overwrite the contents in the cell I receive an error
message #1004. It indicates the problem is in:
Target.Value = Worksheets("Input").Range("J4") _
.Offset(Application.WorksheetFunction _
.Match(Target.Value, Worksheets("Input").Range("BILLINGCATEGORIES"), 0),
0)

I have entered code which exits the function as soon as error 1004 occurs
but then it will no longer display one of the two values in the list. Both
values are now shown in the cell. Is there a way to "reset" this, I hope
this somewhat makes sense.

thanks again for any help you may have to offer.

c
 
D

Debra Dalgleish

Make sure you run the line:

Application.EnableEvents = True

as part of the error handling
 
C

c

Where exactly do I include this? I have tried it in a few locations and have
come up with nothing. I have the following:

On Error Goto Errhandler:

Code describing location of cell containing lists

Errhandler:
If Error.Number = 13 Then Exit Sub
If Error.Number = 1004 Then Exit Sub
Should it go here?

Code that changes cell value.

End sub

Thanks Again for any help.
c
 
C

c

Sorry,
Stupid question! It has been a long day.

Works perfect. I thank you again for all your help

Sincerely,
c
 
D

Debra Dalgleish

In my code, I'd set it up like this:

'================================
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo errHandler

If Target.Cells.Count > 1 Then GoTo exitHandler
If Target.Column = 2 Then
If Target.Value = "" Then GoTo exitHandler
Application.EnableEvents = False
Target.Value = Worksheets("Codes").Range("C1") _
.Offset(Application.WorksheetFunction _
.Match(Target.Value, Worksheets("Codes").Range("ProdList"), 0), 0)
End If

exitHandler:
Application.EnableEvents = True
Exit Sub

errHandler:
If Err.Number = 13 Or Err.Number = 1004 Then
GoTo exitHandler
Else
Resume Next
End If

End Sub
'=================================
 
D

Dave Peterson

That 1004 error can mean lots of things.

Before you spend lots of time...

Do you have a range named "billingCategories" on that "input" worksheet?
(spelling is very important--but upper/lower is not.)

Deb's code looks like:

Target.Value = Worksheets("Codes").Range("C1") _
.Offset(Application.WorksheetFunction _
.Match(Target.Value, Worksheets("Codes").Range("ProdList"), 0), 0)

You pointed at J4. Verify that this is ok, too.

(Prodlist pointed at B2:B4 in Deb's sample workbook. Is "billingcategories" set
up the same way?
 
C

c

Thanks Dave,
I beleive all of the items you have pointed out are in order. I have made
the changes that Debra suggested and as of right now everything seems to be
working fine, even when I manually overwrite the contents of the list. I
still need to work with it a bit but I hope it is nearly a finished product.

Thanks for your help
c
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top