Bonjour à tous,
Alors je vous explique succinctement le contexte.
Je souhaite ajouter dynamiquement des boutons à un userform et y affecter du code.
J'ai donc adapté un morceau de code trouvé sur le forum et çà fonctionne.
Donc pourquoi est-ce que je poste direz-vous?
En fait je ne maitrise pas trop les classes et les collections. Je ne voudrais donc pas appliquer bêtement le code sans le comprendre. Voici donc le code de base (c'est réduit au strict nécessaire pour les explications):
Userform
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
20
21
22
23
24
25
26
Public Collect As Collection
Public CollectBT As Collection
Private Sub UserForm_Initialize()
Dim Bouton As MSForms.CommandButton
Dim Cl As ClasBT
'
Set Collect = New Collection
Set CollectBT = New Collection
'
For i = 1 To 3
    Set Bouton = Me.Controls.Add("Forms.commandbutton.1", "equipe" & i, True)
    CollectBT.Add Bouton  'Ajouter à la collection d'objet
    Set Cl = New ClasBT 'Ajouter à la collection de classe
    Set Cl.GroupBoutons = Bouton
    Collect.Add Cl
 
    With CollectBT(i) 'Initialise les boutons
        .Top = i * 30
        .Left = 30
    End With
Next
 
End Sub
Public Sub ControlClick()
    MsgBox "ok "
End Sub
Le module de classe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Public WithEvents GroupBoutons As MSForms.CommandButton
 
Private Sub GroupBoutons_Click()
 
    Call UserForm1.ControlClick
 
End Sub
Voici donc mes questions:
-CollectBT est la collection des boutons. Ca sert à modifier les propriétés des boutons (position, couleur, etc...) avec un minimum de lignes de code, pour éviter de modifier indépendamment chaque bouton. Est-ce bien là l'intérêt?
-Cl c'est quoi? Une instance de ClasBT?
-GroupBoutons c'est quoi, un objet ou une propriété? Parce que çà a l'air d'être une propriété mais dans ce cas comment on peut affecter un bouton à une propriété?
-et enfin, à quoi sert la collection Collect?

Merci d'avance pour vos réponses