Test sur objet créé dynamiquement
Bonjour,
Dans un userform j'ai créé dynamiquement des checkbox. J'ai donc un module de classe. (classe1)
Partie de code intéressant la création:
'---------- boucle de création des CheckBox ----------
Set Obj = Me.Controls.Add("forms.Checkbox.1")
For i = 1 To 60
With Obj
.Name = "eleve" & i ' nom du checkbox
.Object.Caption = sgf.Cells(5, i + 26).Value & i ' NP élève
.Left = 4 ' Départ gauche
.Top = 16 * i + 25 ' départ haut
.Width = 120 ' largeur
.Height = 16 ' hauteur
.Value = True ' Coché
.Locked = False ' déverrouillé
.ForeColor = RGB(0, 0, 0) ' couleur noir
End With
'ajout de l'objet dans la classe
Set Cl = New Classe1
Set Cl.ChkBx = Obj
Collect.Add Cl
Next i
'------------------------------Fin de boucle de création des CheckBox---------------------------
Sur le bouton "Enregistrer" de mon userform, je veux faire un test sur les valeurs des checkbox pour savoir si elle est égale à true.
Je cherche l'écriture de la ligne de test. Comment l'indicer?
Pour le moment j'ai:
For i = 1 To nbeleves
Obj.Name = "eleve" & i
If Obj.Object.Value = True And sgf.Cells(4, i + 26) = "" Then
sgf.Cells(Lin, i + 26) = "X"
ElseIf Obj.Object.Value = False And sgf.Cells(4, i + 26).Value = "" Then
sgf.Cells(Lin, i + 26).Value = 0
End If
Next i
Merci pour le coup de main
ddetp88
Je me réponds à moi même
En fait il faut le traiter comme un controls habituel situé dans une boucle:
For i = 1 To nbeleves
If Me.Controls("eleve" & i).Value = True And sgf.Cells(4, i + 26) = "" Then
sgf.Cells(Lin, i + 26) = "X"
ElseIf Me.Controls("eleve" & i).Value = False And sgf.Cells(4, i + 26).Value = "" Then
sgf.Cells(Lin, i + 26).Value = 0
End If
Next i
ddetp88