Ajout d'un objet dans une classe
Bonjour,
J'ai suivi ce tutoriel :
http://silkyroad.developpez.com/VBA/...asicEditor/#LV
Qui fonctionne très bien. Je l'ai simplement adapté pour afficher dynamiquement un certain nombre de boutton à la place des checkbox. Cela marche également très bien. Mais lorsque j'arrive au moment ou j'ajoute les objets créés dans ma classe, j'obtiens le message d'erreur 424 : "objet requis"
voilà mon code :
Code:
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 27 28 29 30 31 32
| Private Sub CommandButton1_Click()
Set con = connexion
'get_nombre_de_boutton (con)
Dim Obj As Control
Dim Cl As Classe1
Dim i As Integer
Set Collect = New Collection
For i = 1 To get_nombre_de_boutton(con) 'boucle pour la création des boutons
Set Obj = Me.Controls.Add("forms.CommandButton.1")
With Obj
.Name = "monButton" & i
.Object.Caption = "le texte" & i
.Left = 140
.Top = 30 * i + 10
.Width = 60
.Height = 20
End With
'ajout de l'objet dans la classe
Set Cl = New Classe1
Set C1.CButton = Obj
Collect.Add Cl
Next i
End Sub |
Avec la classe qui va avec :
Code:
1 2 3 4 5 6 7 8 9 10
|
Option Explicit
Public WithEvents CButton As MSForms.CommandButton
'Exemple pour gérer l'évènement clic sur les objets type CheckBox
Private Sub CButton_Click()
'cet exemple affiche le nom et la valeur de l'objet cliqué
MsgBox CButton.Name & ": " & CButton.Name
End Sub |
Je ne comprend pas pourquoi j'obtiens cette erreur. Elle survient à la ligne :
Set C1.CButton = Obj
J'ai pourtant bien créé mon objet, alors pourquoi est ce que l'interpreteur me dit qu'il est requis...?
Sinon comme il est dit dans le tutoriel j'ai également mit :
Code:
1 2 3
|
Option Explicit
Public Collect As Collection |
dans un module standard, et au passage je ne comprends pas pourquoi je dois déclarer ma collection dans un module à part. Pourquoi je ne peux pas déclarer ma collection en même temps que mon "Set Collect = New Collection".
Merci pour votre aide. :)