list to populate ComboBox

K

KIM W

I am attempting to fill a combo box with the list ow Named Ranges with names
that begin with "List*. I successfully get the names into a text box (see
commented out code below), but whrn I attempt to write it to the combobox, I
get "Object doesn't support prroperty or method."

How do I write the list to a commbo box?

Ultimately, I am going to use the selected name range to populate a
multi-select listbox (which is working with hard coded Named Range in it.)

Thanks in advance, you generous souls. I have indeeed searched the forum,
and it does look to me like I am doing this correctly.

Private Sub UserForm_Initialize()
Dim nMames As Names
Dim nName As Name
Dim r As Variant
r = ""
For Each nName In Application.ThisWorkbook.Names
If nName.Name Like "List*" Then
r = r & nName.Name & Chr(10)
End If
Next nName
'MsgBox r
Sheets("Sheet1").ComboBox1.List = r
End Sub
 
J

JLGWhiz

I didn't test this, but the idea is to put the names into an array, then use
the array for the list.

Dim r As Variant, i As Long
For Each nName In Application.ThisWorkbook.Names
If nName.Name Like "List*" Then
i = i + 1
r(i) = nName.Name
End If
Next nName
 
D

Dave Peterson

I'm confused about what you're doing.

You're using the userform_initialize routine, but then populating a combobox on
a workhsheet.

I'm guessing that you really wanted to populate a combobox on that userform.

If that's correct:

Option Explicit
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()

Dim nName As Name
Dim myNames() As String
Dim iCtr As Long

iCtr = 0
For Each nName In ThisWorkbook.Names
If LCase(nName.Name) Like LCase("List*") Then
iCtr = iCtr + 1
ReDim Preserve myNames(1 To iCtr)
myNames(iCtr) = nName.Name
End If
Next nName

If iCtr = 0 Then
Me.ComboBox1.Enabled = False
Else
With Me.ComboBox1
.List = myNames
.Enabled = True
End With
End If

End Sub
 
K

KIM W

With your help, Dave, I now have it. Thanks for getting beyond my
misunderstanding and giving me a great workable solution.
 

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