Bonjour,
j'ai actuellement 26 fois ce code. Il est lancé depuis le Userform15 (clic sur un label FestivalX, X allant de 1 à 26)
Comment faire pour n'avoir qu'une seule fois ce code avec en paramètre le numero du label sur lequel j'ai cliqué ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub FestivalX_Click() UserForm17.titrefestival = Userform15.FestivalX.Caption End Sub
Sous-entendu, il extrait le numéro du label sur lequel j'ai cliqué pour l'intégrer dans mon code ?
En me renseignant à droite à gauche, j'ai essayé d'écrire ca :
Module de classe nommé clsLblEvents :
Et module classique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Public WithEvents ListeItem As MSForms.Label Private Sub ListeItem_Click() UserForm17.titrefestival = ListeItem.Caption End Sub
Mais évidemment, ca ne marche pas dans mon cas... Il ne se passe rien lorsque je clique sur un des labels Festival.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Dim mcolEvents As New Collection Private Sub Userform15_initialize() Dim ListeItem As CLblEvents Dim Ctl As Control Dim clsLblEvents As CLblEvents Set mcolEvents = New Collection For Each Ctl In UserForm15.Controls If Ctl.Type = msoOLEControlObject Then If TypeOf Ctl.OLEFormat.Object.Object Is MSForms.Label Then If Ctl.Name Like "Festival" Then Set clsLblEvents = New CLblEvents Set clsLblEvents.ListeItem = Ctl.OLEFormat.Object.Object mcolEvents.Add clsLblEvents End If End If End If Next End Sub
Est-ce que j'ai un moyen de savoir si ListeItem est correctent rempli ? pour situer le problème...
Merci pour votre aide...
Partager