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
Le module de classe:
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
Voici donc mes questions:
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
-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
Partager