Looping UserForm ComboBox

O

Owen

Hi

I would like to use the code below in a loop so that i can populate numerous
ComboBoxes within my UserForm with the same list.

I am not sure how to go about this, and would appreciate any help.

Thanks

With ComboBox7
Dim MonthArray As Variant
MonthArray = Split("01|02|03|04|05|06|07|08|09|10|11|12|", "|")
ComboBox7.List = MonthArray
End With
 
G

Graham Mayor

Something like:

Option Explicit
Private MonthArray As Variant
Private Sub UserForm_Initialize()
MonthArray = Split("01|02|03|04|05|06|07|08|09|10|11|12|", "|")
Me.ComboBox1.list = MonthArray
Me.ComboBox2.list = MonthArray
Me.ComboBox3.list = MonthArray
Me.ComboBox4.list = MonthArray
Me.ComboBox5.list = MonthArray
End Sub

will do the job

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
O

Owen

Thanks Graham...it did the trick.

Graham Mayor said:
Something like:

Option Explicit
Private MonthArray As Variant
Private Sub UserForm_Initialize()
MonthArray = Split("01|02|03|04|05|06|07|08|09|10|11|12|", "|")
Me.ComboBox1.list = MonthArray
Me.ComboBox2.list = MonthArray
Me.ComboBox3.list = MonthArray
Me.ComboBox4.list = MonthArray
Me.ComboBox5.list = MonthArray
End Sub

will do the job

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>





.
 
G

Graham Mayor

You are welcome :)

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
G

Greg_Maxey via OfficeKB.com

Graham's answer is will do the job quite well in this case. There are a few
other techniques that you might put in your toolbox for cases where the
number of controls involved is large:

The first loops through like named controls with an index number:

Private MonthArray As Variant
Private Sub UserForm_Initialize()
Dim i As Long
Dim CtrNameArray As String
CtrNameArray = Split("ComboBox1|ComboBox1|ComboBox1|ComboBox1|ComboBox1")
MonthArray = Split("01|02|03|04|05|06|07|08|09|10|11|12|", "|")
For i = 1 To 5 'or to whatever number you need.
Me.Controls("ComboBox" & i).List = MonthArray
Next i
End Sub

The other uses a second array to provide uniquely named controls to the loop:

Private Sub UserForm_Initialize()
Dim i As Long
Dim CtrNameArray() As String 'Variant
CtrNameArray = Split
("ComboBoxAlpha|ComboBoxBravo|ComboBoxCharlie|ComboBoxDelta|ComboBoxEcho",
"|")
MonthArray = Split("01|02|03|04|05|06|07|08|09|10|11|12|", "|")
For i = 0 To UBound(CtrNameArray)
Me.Controls(CtrNameArray(i)).List = MonthArray
Next i
End Sub


Hi

I would like to use the code below in a loop so that i can populate numerous
ComboBoxes within my UserForm with the same list.

I am not sure how to go about this, and would appreciate any help.

Thanks

With ComboBox7
Dim MonthArray As Variant
MonthArray = Split("01|02|03|04|05|06|07|08|09|10|11|12|", "|")
ComboBox7.List = MonthArray
End With

--
Greg Maxey

Please visit my web site http://gregmaxey.mvps.org

Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.aspx/word-docmanagement/201006/1
 

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