View Single Post
  #13   Report Post  
Posted to microsoft.public.excel.programming
Ryan H Ryan H is offline
external usenet poster
 
Posts: 489
Default Combo Box Question

In my original post all you had to do is enter the rest of your combobox
names into the collection like so.

Private Sub UserForm_Initialize()

Dim colComboBoxes As Collection
Dim cbo As Object

' build a collection of your comboboxes
Set colComboBoxes = New Collection
With colComboBoxes
.Add Type_Work_601
.Add Type_Work_602
.Add Type_Work_603
.Add Type_Work_604
.Add Type_Work_605
.Add Type_Work_606
.Add Type_Work_607
.Add Type_Work_608
.Add Type_Work_609
.Add Type_Work_610
.Add Type_Work_611
.Add Type_Work_612
.Add Type_Work_613
.Add Type_Work_614
.Add Type_Work_615
.Add Type_Work_616
.Add Type_Work_617
.Add Type_Work_618
.Add Type_Work_619
.Add Type_Work_620
.Add Type_Work_621
.Add Type_Work_622
.Add Type_Work_623
.Add Type_Work_701
.Add Type_Work_702
.Add Type_Work_703
.Add Type_Work_704
.Add Type_Work_705
.Add Type_Work_706
.Add Type_Work_707
.Add Type_Work_708
.Add Type_Work_709
.Add Type_Work_710
.Add Type_Work_711
.Add Type_Work_712
.Add Type_Work_713
.Add Type_Work_714
.Add Type_Work_715
.Add Type_Work_716
.Add Type_Work_717
.Add Type_Work_718
.Add Type_Work_719
.Add Type_Work_720
.Add Type_Work_721
.Add Type_Work_722
.Add Type_Work_723
End With

' loop thru each item in collection and give these values
For Each cbo In colComboBoxes
With cbo
.AddItem "ADD:"
.AddItem "ASSIGN:"
.AddItem "EXTEND:"
.AddItem "MODIFY:"
.AddItem "MULTIPLED"
.AddItem "REASSIGNED"
.AddItem "RECABLE"
.AddItem "RELOCATE:"
.AddItem "REMOVE:"
.AddItem "RENUMBER:"
.AddItem "REOPEN/CLOSE:"
.AddItem "RETIRE IN PLACE:"
.AddItem "VERIFY"
End With
Next cbo

End Sub

But this is a little cumbersome. So I condensed the code down to fill the
collection of you comboboxes using a loop.


Private Sub UserForm_Initialize()

Dim colComboBoxes As Collection
Dim i As Long
Dim cbo As Object

' build your collection of comboboxes
Set colComboBoxes = New Collection
With colComboBoxes
For i = 601 To 723
.Add Controls("Type_Work_" & i)
Next i
For i = 701 To 723
.Add Controls("Type_Work_" & i)
Next i
End With

' give your comboboxes values
For Each cbo In colComboBoxes
With cbo
.AddItem "ADD:"
.AddItem "ASSIGN:"
.AddItem "EXTEND:"
.AddItem "MODIFY:"
.AddItem "MULTIPLED"
.AddItem "REASSIGNED"
.AddItem "RECABLE"
.AddItem "RELOCATE:"
.AddItem "REMOVE:"
.AddItem "RENUMBER:"
.AddItem "REOPEN/CLOSE:"
.AddItem "RETIRE IN PLACE:"
.AddItem "VERIFY"
End With
Next cbo

End Sub


Let me know if this helps clarify my code. If so, click "YES" below.
--
Cheers,
Ryan


"Brian" wrote:

I should have made it clear, I have 46 Combo Boxes that all need the same
choices.

My Combo Boxes are
Type_Work_601
Thru
Type_Work_623

Type_Work_701
Thru
Type_Work_723

I tried each code and they all gave me a compile error.



"Brian" wrote:

I have several Combo Boxes that need to use the same choices. Is there a way
to only use this code 1 time & all the Combo Boxes offer the same choices or
do i have to enter this code for every Combo Box?

My Combo Boxes are "Type_Work_601-623" & "Type_Work_701-723"

'Type Work to be Done
With Me.Type_Work_601
.AddItem "ADD:"
.AddItem "ASSIGN:"
.AddItem "EXTEND:"
.AddItem "MODIFY:"
.AddItem "MULTIPLED"
.AddItem "REASSIGNED"
.AddItem "RECABLE"
.AddItem "RELOCATE:"
.AddItem "REMOVE:"
.AddItem "RENUMBER:"
.AddItem "REOPEN/CLOSE:"
.AddItem "RETIRE IN PLACE:"
.AddItem "VERIFY"
End With

Thanks
Brian