Excel VBA ComboBox Identification

J'ai 4+ ComboBoxes sur un formulaire utilisateur. Quand ils tirent, ils tirent le même événement. Ce que j'essaie de faire est de trouver ce qui ComboBox a déclenché l'événement. Les zones de liste modifiables sont créés en fonction du nombre de pièces. Le code générer des ComboBoxes est indiqué ci-dessous:

For j = 0 To UBound(ComponentList) - 1
'Set Label
num = j + 1
Set control = UserForm1.Controls.Add("Forms.Label.1", "ComponentLabel" & CStr(num) & ":", True)
With control
    .Caption = "Component " & CStr(num)
    .Left = 30
    .Top = Height
    .Height = 20
    .Width = 100
    .Visible = True
End With
'set ComboBox
Set combo = UserForm1.Controls.Add("Forms.ComboBox.1", "Component" & num & ":", True)
With combo
    .List = ComponentList()
    .Left = 150
    .Top = Height
    .Height = 20
    .Width = 50
    .Visible = True
    Set cButton = New clsButton
    Set cButton.combobox = combo
    coll.Add cButton
End With
Height = Height + 30
Next j

Cela fonctionne bien, et je peux récupérer la valeur choisie par l'utilisateur, MAIS je n'arrive pas à trouver la liste déroulante a été utilisé. Ce code ci-dessous est l'événement qui déclenche (clsButton):

Public WithEvents btn As MSForms.CommandButton
Public WithEvents combobox As MSForms.combobox
Private combolist() As String

Private Sub btn_Click()
    If btn.Caption = "Cancel" Then
        MsgBox "Cancel"
        Unload UserForm1
        Variables.ComponentSelectionError = False
    ElseIf btn.Caption = "Enter" Then
        MsgBox "enter"
        Unload UserForm1
        Variables.ComponentSelectionError = True
    End If
End Sub

Private Sub combobox_Click()
    MsgBox combobox.Value
End Sub

Ce morceau de code ci-dessus a été aimablement réalisé par Doug Glancy pour obtenir les événements de travail avec le code généré ComboBoxes.

Comment puis-je obtenir la zone de liste déroulante qui a déclenché l'événement? c'est à dire le nom ou toute autre forme d'identification.

OriginalL'auteur NoLiver92 | 2013-03-22