Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have 6 Combobox controls on a userform
named ComboBox1 to Combobox6 When I click on a combobox the class Msgbox displays the combobox name I clicked corrrectly. However the raise event only fires on the last combobox It seems to be a scope problem but I cannot see the answer What extra code do I need to fire the raise event for any combobox I click UserForm Code Public colevents As Collection Public WithEvents cls As ClsComboEvent Private Sub cls_GetClickedControl(n As String) MsgBox n 'Only fires on last combobox click End Sub Private Sub UserForm_Initialize() Dim ctrl As MSForms.Control Dim x As Long Set colevents = New Collection For Each ctrl In Me.Controls If TypeOf ctrl Is ComboBox Then For x = 1 To 3 'add 3 choices ctrl.AddItem "Choice" & CStr(x) Next Set cls = New ClsComboEvent Set cls.Cevent = ctrl colevents.Add cls End If Next End Sub Class Module code Class is named cls Public WithEvents Cevent As MSForms.ComboBox Event GetClickedControl(n As String) Private Sub Cevent_Click() Dim ControlName As String ControlName = Cevent.Name 'MsgBox ControlName 'this fires correctly RaiseEvent GetClickedControl(ControlName) End Sub |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Raise Event Problem | Excel Programming | |||
Click event on menu item is lost after first time firing of the event | Excel Programming | |||
OnTime event not firing in Workbook_Open event procedure | Excel Programming | |||
Does formatting raise an event | Excel Programming | |||
dialog raise event? | Excel Programming |