Sigue los siguientes pasos:
1. Crea una Clase1 y pon el siguiente código:
Public WithEvents tbxCustom1 As MSForms.ComboBox 'Custom ComboBox
'
Private Sub tbxCustom1_Change()
MsgBox "Modificaste el combo: " & tbxCustom1.Name
End Sub
No todos los eventos existen en la clase, sí existe el evento Change, y los que ves en la imagen:
2. En tu formulario en el evento Activate pon esto:
Private Sub UserForm_Activate()
'Por.Dante Amor
Set colTbxs = New Collection
End Sub
3. Al inicio de todo tu código (Declaraciones) pon esto:
Dim colTbxs As Collection 'Collection Of Custom combo
4. En un botón para crear un combo:
Private Sub CommandButton2_Click()
'Por.Dante Amor
i = 1
Set lotemas = Me.Controls.Add("Forms.Combobox.1")
With lotemas
.Height = 15.75
.Left = 6
.Top = 336 + ttop
.Width = 72
.Name = "CLote" & i
.ControlTipText = "CLote" & i
End With
Me.Controls("CLote" & i).SetFocus
'
Set clsObject = New Clase1
Set clsObject.tbxCustom1 = Me.Controls("CLote" & i)
colTbxs.Add clsObject
'
End Sub
Todo el código, quedaría así:
Dim colTbxs As Collection 'Collection Of Custom combo
'
Private Sub CommandButton2_Click()
'Por.Dante Amor
i = 1
Set lotemas = Me.Controls.Add("Forms.Combobox.1")
With lotemas
.Height = 15.75
.Left = 6
.Top = 336 + ttop
.Width = 72
.Name = "CLote" & i
.ControlTipText = "CLote" & i
End With
Me.Controls("CLote" & i).SetFocus
'
Set clsObject = New Clase1
Set clsObject.tbxCustom1 = Me.Controls("CLote" & i)
colTbxs.Add clsObject
'
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
Set colTbxs = New Collection
End Sub
En la clase tienes que poner lo que quieres hacer cuando Cambie el combo que acabas de crear, veo que tienes la variable i para identificar el número de combo, entonces en la clase deberás apoyarte en esa variable para saber cuál combo estás ocupando; en fin, eso es parte de tu proceso, la idea es crear el evento Change del combo que acabas de crear.
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias