Effectivement, j'ai changé mon code, c'est beaucoup mieux est plus universelle.
GRAND MERCI
Eric
Idéalement serait d'avoir le nombre de label dans l'Userform
le résultat :
je défini une variable dans un module (j'ai un module avec toutes les déclarations plublic)
Public MyForm As Object
puis je déclarer un Module de classe ici CL_Label avec :
' ****************************** Module de classe ********************************************
Public WithEvents GroupeLabel As MSForms.Label
Private Sub GroupeLabel_Click()
Call MyForm.LabelClick(GroupeLabel)
' je retourne le label
End Sub
' ******************************** Userform ******************************************
Dans mon Userform "MonUSER" :
Const NombreDeLabel As Integer = 20 ' il y a 20 labels
Dim CtrLabel(1 To NombreDeLabel) As Cl_Label
Sub LabelClick(ByVal Lab As MSForms.Label)
MsgBox "tu as cliqué sur un le label : " & Lab.Name & " " & Lab.Caption
End Sub
Private Sub UserForm_Initialize()
Dim i as integer
Set MyForm = Me ' je passe l'userform en variable
For i = 1 To NombreDeLabel
Set CtrLabel(i) = New Cl_Label
Set CtrLabel(i).GroupeLabel = Controls("label" & i)
Next i
End Sub