Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 119
Default ListFillRange challenge

On Sheet1, I have users select a project name in cell A1 from a list created
using a data validation range. In cell B1, I have created a combo box using
the Control Toolbox toolbar. The purpose of the combo box is to look up the
project name selected in A1 and then display 2 columns of information (CODE
#, DESCRIPTION) for the user to choose from. The combo box will get its
values from Sheet2 (using the ListFillRange property), where I have the
following information listed:

PROJECTS STATUS CODE # DESCRIPTION
Project A A 10001 Plan 1
Project A A 10002 Plan 2
Project A A 10003 Plan 3
Project A A 10004 Plan 4
Project B A 20001 Plan 5
Project B A 20002 Plan 6
Project B A 20003 Plan 7
Project C A 30001 Plan 8
Project C A 30002 Plan 9
Project C A 30003 Plan 10
Project C A 30004 Plan 11

My problem is writing code for the click event of the combo box that looks
up the value of Sheet1!A1, finds a match for it in the PROJECTS column on
Sheet2, and then displays both the CODE# and DESCRIPTION options for that
project in the combo box for the user to choose from. For example, if Project
B is selected, I want the combo box choices to be
CODE # DESCRIPTION
20001 Plan 5
20002 Plan 6
20003 Plan 7

I know how to set the properties of the combo box; I just need help with the
code.
Thanks!

Steve C
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default ListFillRange challenge

The click event fires when a selection is made. You should probably
populate the combobox from the Change event of Sheet1 for the cell A1.
Don't use the listfill range property for the combobox - it won't allow you
do to what you want.


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim res as Variant, rng as Range
Dim rng1 as Range, i as Long
If Target.Address = "$A$1" then
Combobox1.ColumnsCount = 2
Combobox1.ListfillRange = ""
Combobox1.Clear
With worksheets("Sheet2")
set rng = .Range(.Cells(2,1),.Cells(2,1)).End(xldown))
End with
res = Application.Match(Target,rng,0)
set rng1 = rng(res)
i = 0
do while rng(i) = Target
Combobox1.AddItem rng(i).offset(0,2).Value
Combobox1.List(combobox1.ListCount-1,1) = _
rng(i).offset(0,2).Value
Loop
End Sub

--
Regards,
Tom Ogilvy


"Steve C" wrote in message
...
On Sheet1, I have users select a project name in cell A1 from a list

created
using a data validation range. In cell B1, I have created a combo box

using
the Control Toolbox toolbar. The purpose of the combo box is to look up

the
project name selected in A1 and then display 2 columns of information

(CODE
#, DESCRIPTION) for the user to choose from. The combo box will get its
values from Sheet2 (using the ListFillRange property), where I have the
following information listed:

PROJECTS STATUS CODE # DESCRIPTION
Project A A 10001 Plan 1
Project A A 10002 Plan 2
Project A A 10003 Plan 3
Project A A 10004 Plan 4
Project B A 20001 Plan 5
Project B A 20002 Plan 6
Project B A 20003 Plan 7
Project C A 30001 Plan 8
Project C A 30002 Plan 9
Project C A 30003 Plan 10
Project C A 30004 Plan 11

My problem is writing code for the click event of the combo box that looks
up the value of Sheet1!A1, finds a match for it in the PROJECTS column on
Sheet2, and then displays both the CODE# and DESCRIPTION options for that
project in the combo box for the user to choose from. For example, if

Project
B is selected, I want the combo box choices to be
CODE # DESCRIPTION
20001 Plan 5
20002 Plan 6
20003 Plan 7

I know how to set the properties of the combo box; I just need help with

the
code.
Thanks!

Steve C



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 119
Default ListFillRange challenge

Tom,

When testing your code (which I placed in the Sheet1 module in the VB
Editor), I'm getting a Run-time error 13: Type mismatch for the following
line of code:

set rng1 = rng(res)

Also, does the location of the information on Sheet2 matter? There is a
potential for this information to change (it's linked to another workbook
that is updated with new project names, Code #'s and Descriptions as they are
created). Thanks again for all your help!

"Tom Ogilvy" wrote:

The click event fires when a selection is made. You should probably
populate the combobox from the Change event of Sheet1 for the cell A1.
Don't use the listfill range property for the combobox - it won't allow you
do to what you want.


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim res as Variant, rng as Range
Dim rng1 as Range, i as Long
If Target.Address = "$A$1" then
Combobox1.ColumnCount = 2
Combobox1.ListfillRange = ""
Combobox1.Clear
With worksheets("Sheet2")
set rng = .Range(.Cells(2,1),.Cells(2,1)).End(xldown))
End with
res = Application.Match(Target,rng,0)
set rng1 = rng(res)
i = 0
do while rng(i) = Target
Combobox1.AddItem rng(i).offset(0,2).Value
Combobox1.List(combobox1.ListCount-1,1) = _
rng(i).offset(0,2).Value
Loop
End Sub

--
Regards,
Tom Ogilvy


"Steve C" wrote in message
...
On Sheet1, I have users select a project name in cell A1 from a list

created
using a data validation range. In cell B1, I have created a combo box

using
the Control Toolbox toolbar. The purpose of the combo box is to look up

the
project name selected in A1 and then display 2 columns of information

(CODE
#, DESCRIPTION) for the user to choose from. The combo box will get its
values from Sheet2 (using the ListFillRange property), where I have the
following information listed:

PROJECTS STATUS CODE # DESCRIPTION
Project A A 10001 Plan 1
Project A A 10002 Plan 2
Project A A 10003 Plan 3
Project A A 10004 Plan 4
Project B A 20001 Plan 5
Project B A 20002 Plan 6
Project B A 20003 Plan 7
Project C A 30001 Plan 8
Project C A 30002 Plan 9
Project C A 30003 Plan 10
Project C A 30004 Plan 11

My problem is writing code for the click event of the combo box that looks
up the value of Sheet1!A1, finds a match for it in the PROJECTS column on
Sheet2, and then displays both the CODE# and DESCRIPTION options for that
project in the combo box for the user to choose from. For example, if

Project
B is selected, I want the combo box choices to be
CODE # DESCRIPTION
20001 Plan 5
20002 Plan 6
20003 Plan 7

I know how to set the properties of the combo box; I just need help with

the
code.
Thanks!

Steve C




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default ListFillRange challenge

You said the value of Target is obtained from a data validation dropdown, so
I assumed it would be legitimate value from the list where the data is
locate. The type mismatch would indicate the Match has returned an #N/A
error meaning the item in A1 did not match. I didn't check for a blank
value in A1 so possibly that is another problem.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim res As Variant, rng As Range
Dim rng1 As Range, i As Long
If Target.Address = "$A$1" Then
If Target.Value < "" Then
combobox1.ColumnsCount = 2
combobox1.ListFillRange = ""
combobox1.Clear
With Worksheets("Sheet2")
Set rng = .Range(.Cells(2, 1), .Cells(2, 1).End(xlDown))
End With
res = Application.Match(Target, rng, 0)
If Not IsError(res) Then
Set rng1 = rng(res)
i = 0
Do While rng(i) = Target
combobox1.AddItem rng(i).Offset(0, 2).Value
combobox1.List(combobox1.ListCount - 1, 1) = _
rng(i).Offset(0, 2).Value
Loop
Else
MsgBox "Value in A1 is invalid"
End If
End If
End If
End Sub

You need to know where your data is.

--
Regards,
Tom Ogilvy



"Steve C" wrote in message
...
Tom,

When testing your code (which I placed in the Sheet1 module in the VB
Editor), I'm getting a Run-time error 13: Type mismatch for the following
line of code:

set rng1 = rng(res)

Also, does the location of the information on Sheet2 matter? There is a
potential for this information to change (it's linked to another workbook
that is updated with new project names, Code #'s and Descriptions as they

are
created). Thanks again for all your help!

"Tom Ogilvy" wrote:

The click event fires when a selection is made. You should probably
populate the combobox from the Change event of Sheet1 for the cell A1.
Don't use the listfill range property for the combobox - it won't allow

you
do to what you want.


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim res as Variant, rng as Range
Dim rng1 as Range, i as Long
If Target.Address = "$A$1" then
Combobox1.ColumnCount = 2
Combobox1.ListfillRange = ""
Combobox1.Clear
With worksheets("Sheet2")
set rng = .Range(.Cells(2,1),.Cells(2,1)).End(xldown))
End with
res = Application.Match(Target,rng,0)
set rng1 = rng(res)
i = 0
do while rng(i) = Target
Combobox1.AddItem rng(i).offset(0,2).Value
Combobox1.List(combobox1.ListCount-1,1) = _
rng(i).offset(0,2).Value
Loop
End Sub

--
Regards,
Tom Ogilvy


"Steve C" wrote in message
...
On Sheet1, I have users select a project name in cell A1 from a list

created
using a data validation range. In cell B1, I have created a combo box

using
the Control Toolbox toolbar. The purpose of the combo box is to look

up
the
project name selected in A1 and then display 2 columns of information

(CODE
#, DESCRIPTION) for the user to choose from. The combo box will get

its
values from Sheet2 (using the ListFillRange property), where I have

the
following information listed:

PROJECTS STATUS CODE # DESCRIPTION
Project A A 10001 Plan 1
Project A A 10002 Plan 2
Project A A 10003 Plan 3
Project A A 10004 Plan 4
Project B A 20001 Plan 5
Project B A 20002 Plan 6
Project B A 20003 Plan 7
Project C A 30001 Plan 8
Project C A 30002 Plan 9
Project C A 30003 Plan 10
Project C A 30004 Plan 11

My problem is writing code for the click event of the combo box that

looks
up the value of Sheet1!A1, finds a match for it in the PROJECTS column

on
Sheet2, and then displays both the CODE# and DESCRIPTION options for

that
project in the combo box for the user to choose from. For example, if

Project
B is selected, I want the combo box choices to be
CODE # DESCRIPTION
20001 Plan 5
20002 Plan 6
20003 Plan 7

I know how to set the properties of the combo box; I just need help

with
the
code.
Thanks!

Steve C






  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 119
Default ListFillRange challenge

Tom,

Your code has helped me immensely. One question regarding this line:

If Target.Address = "$A$1" Then

Can the target be a named range? I've tried the following, but it doesn't
seem to recognize anything (where Project1 = $A$1):

If Target.Address = "Project1" Then
If Target.Address = Project1 Then
If Target.Address = Range("Project1") Then

Thanks!

"Tom Ogilvy" wrote:

You said the value of Target is obtained from a data validation dropdown, so
I assumed it would be legitimate value from the list where the data is
locate. The type mismatch would indicate the Match has returned an #N/A
error meaning the item in A1 did not match. I didn't check for a blank
value in A1 so possibly that is another problem.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim res As Variant, rng As Range
Dim rng1 As Range, i As Long
If Target.Address = "$A$1" Then
If Target.Value < "" Then
combobox1.ColumnsCount = 2
combobox1.ListFillRange = ""
combobox1.Clear
With Worksheets("Sheet2")
Set rng = .Range(.Cells(2, 1), .Cells(2, 1).End(xlDown))
End With
res = Application.Match(Target, rng, 0)
If Not IsError(res) Then
Set rng1 = rng(res)
i = 0
Do While rng(i) = Target
combobox1.AddItem rng(i).Offset(0, 2).Value
combobox1.List(combobox1.ListCount - 1, 1) = _
rng(i).Offset(0, 2).Value
Loop
Else
MsgBox "Value in A1 is invalid"
End If
End If
End If
End Sub

You need to know where your data is.

--
Regards,
Tom Ogilvy



"Steve C" wrote in message
...
Tom,

When testing your code (which I placed in the Sheet1 module in the VB
Editor), I'm getting a Run-time error 13: Type mismatch for the following
line of code:

set rng1 = rng(res)

Also, does the location of the information on Sheet2 matter? There is a
potential for this information to change (it's linked to another workbook
that is updated with new project names, Code #'s and Descriptions as they

are
created). Thanks again for all your help!

"Tom Ogilvy" wrote:

The click event fires when a selection is made. You should probably
populate the combobox from the Change event of Sheet1 for the cell A1.
Don't use the listfill range property for the combobox - it won't allow

you
do to what you want.


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim res as Variant, rng as Range
Dim rng1 as Range, i as Long
If Target.Address = "$A$1" then
Combobox1.ColumnCount = 2
Combobox1.ListfillRange = ""
Combobox1.Clear
With worksheets("Sheet2")
set rng = .Range(.Cells(2,1),.Cells(2,1)).End(xldown))
End with
res = Application.Match(Target,rng,0)
set rng1 = rng(res)
i = 0
do while rng(i) = Target
Combobox1.AddItem rng(i).offset(0,2).Value
Combobox1.List(combobox1.ListCount-1,1) = _
rng(i).offset(0,2).Value
Loop
End Sub

--
Regards,
Tom Ogilvy


"Steve C" wrote in message
...
On Sheet1, I have users select a project name in cell A1 from a list
created
using a data validation range. In cell B1, I have created a combo box
using
the Control Toolbox toolbar. The purpose of the combo box is to look

up
the
project name selected in A1 and then display 2 columns of information
(CODE
#, DESCRIPTION) for the user to choose from. The combo box will get

its
values from Sheet2 (using the ListFillRange property), where I have

the
following information listed:

PROJECTS STATUS CODE # DESCRIPTION
Project A A 10001 Plan 1
Project A A 10002 Plan 2
Project A A 10003 Plan 3
Project A A 10004 Plan 4
Project B A 20001 Plan 5
Project B A 20002 Plan 6
Project B A 20003 Plan 7
Project C A 30001 Plan 8
Project C A 30002 Plan 9
Project C A 30003 Plan 10
Project C A 30004 Plan 11

My problem is writing code for the click event of the combo box that

looks
up the value of Sheet1!A1, finds a match for it in the PROJECTS column

on
Sheet2, and then displays both the CODE# and DESCRIPTION options for

that
project in the combo box for the user to choose from. For example, if
Project
B is selected, I want the combo box choices to be
CODE # DESCRIPTION
20001 Plan 5
20002 Plan 6
20003 Plan 7

I know how to set the properties of the combo box; I just need help

with
the
code.
Thanks!

Steve C








  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default ListFillRange challenge

Is project1 a single cell?
If Target.Address = Range("Project1").address Then


Steve C wrote:

Tom,

Your code has helped me immensely. One question regarding this line:

If Target.Address = "$A$1" Then

Can the target be a named range? I've tried the following, but it doesn't
seem to recognize anything (where Project1 = $A$1):

If Target.Address = "Project1" Then
If Target.Address = Project1 Then
If Target.Address = Range("Project1") Then

Thanks!

"Tom Ogilvy" wrote:

You said the value of Target is obtained from a data validation dropdown, so
I assumed it would be legitimate value from the list where the data is
locate. The type mismatch would indicate the Match has returned an #N/A
error meaning the item in A1 did not match. I didn't check for a blank
value in A1 so possibly that is another problem.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim res As Variant, rng As Range
Dim rng1 As Range, i As Long
If Target.Address = "$A$1" Then
If Target.Value < "" Then
combobox1.ColumnsCount = 2
combobox1.ListFillRange = ""
combobox1.Clear
With Worksheets("Sheet2")
Set rng = .Range(.Cells(2, 1), .Cells(2, 1).End(xlDown))
End With
res = Application.Match(Target, rng, 0)
If Not IsError(res) Then
Set rng1 = rng(res)
i = 0
Do While rng(i) = Target
combobox1.AddItem rng(i).Offset(0, 2).Value
combobox1.List(combobox1.ListCount - 1, 1) = _
rng(i).Offset(0, 2).Value
Loop
Else
MsgBox "Value in A1 is invalid"
End If
End If
End If
End Sub

You need to know where your data is.

--
Regards,
Tom Ogilvy



"Steve C" wrote in message
...
Tom,

When testing your code (which I placed in the Sheet1 module in the VB
Editor), I'm getting a Run-time error 13: Type mismatch for the following
line of code:

set rng1 = rng(res)

Also, does the location of the information on Sheet2 matter? There is a
potential for this information to change (it's linked to another workbook
that is updated with new project names, Code #'s and Descriptions as they

are
created). Thanks again for all your help!

"Tom Ogilvy" wrote:

The click event fires when a selection is made. You should probably
populate the combobox from the Change event of Sheet1 for the cell A1.
Don't use the listfill range property for the combobox - it won't allow

you
do to what you want.


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim res as Variant, rng as Range
Dim rng1 as Range, i as Long
If Target.Address = "$A$1" then
Combobox1.ColumnCount = 2
Combobox1.ListfillRange = ""
Combobox1.Clear
With worksheets("Sheet2")
set rng = .Range(.Cells(2,1),.Cells(2,1)).End(xldown))
End with
res = Application.Match(Target,rng,0)
set rng1 = rng(res)
i = 0
do while rng(i) = Target
Combobox1.AddItem rng(i).offset(0,2).Value
Combobox1.List(combobox1.ListCount-1,1) = _
rng(i).offset(0,2).Value
Loop
End Sub

--
Regards,
Tom Ogilvy


"Steve C" wrote in message
...
On Sheet1, I have users select a project name in cell A1 from a list
created
using a data validation range. In cell B1, I have created a combo box
using
the Control Toolbox toolbar. The purpose of the combo box is to look

up
the
project name selected in A1 and then display 2 columns of information
(CODE
#, DESCRIPTION) for the user to choose from. The combo box will get

its
values from Sheet2 (using the ListFillRange property), where I have

the
following information listed:

PROJECTS STATUS CODE # DESCRIPTION
Project A A 10001 Plan 1
Project A A 10002 Plan 2
Project A A 10003 Plan 3
Project A A 10004 Plan 4
Project B A 20001 Plan 5
Project B A 20002 Plan 6
Project B A 20003 Plan 7
Project C A 30001 Plan 8
Project C A 30002 Plan 9
Project C A 30003 Plan 10
Project C A 30004 Plan 11

My problem is writing code for the click event of the combo box that

looks
up the value of Sheet1!A1, finds a match for it in the PROJECTS column

on
Sheet2, and then displays both the CODE# and DESCRIPTION options for

that
project in the combo box for the user to choose from. For example, if
Project
B is selected, I want the combo box choices to be
CODE # DESCRIPTION
20001 Plan 5
20002 Plan 6
20003 Plan 7

I know how to set the properties of the combo box; I just need help

with
the
code.
Thanks!

Steve C







--

Dave Peterson
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Combo box - Listfillrange [email protected] Excel Discussion (Misc queries) 0 July 13th 07 09:51 AM
ListFillRange not working Jeff Excel Programming 2 July 1st 05 03:36 PM
How to Set ListFillRange to Another Sheet Chaplain Doug Excel Programming 3 April 29th 05 01:54 PM
ListFillRange Dave Baranas Excel Programming 0 August 12th 03 05:09 AM
ListFillRange Dave Baranas Excel Programming 1 August 11th 03 11:08 PM


All times are GMT +1. The time now is 12:00 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"