UserForm - Parcourir les contrôles

Le
Patrick
Bonjour,

Dans un UserForm, il y a plusieurs CheckBoxes. J'aimerais changer leur
valeur sans les spécifier une par une. Leur nom commence toujours de la même
manière. J'ai essayé comme cela mais cela ne fonctionne pas :

For Each chkObject In Me.Controls
If Left(chkObject.Name, 8) = "chkAdmin" Then
chkObject = False
End If
Next

Je souhaite faire de cette façon car leur nombre risque de changer et je ne
voudrais pas modifier le code à chaque fois.

Avez-vous une idée de la manière de procéder ?

Merci.

--
Patrick
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrick
Le #6936311
Finalement j'ai fait comme cela :

Dim chkControl As MSForms.Control

For Each chkControl In Me.Controls
If Left(chkControl.Name, 8) = "chkAdmin" Then
chkControl = False
End If
Next

--
Patrick


"Patrick" wrote:

Bonjour,

Dans un UserForm, il y a plusieurs CheckBoxes. J'aimerais changer leur
valeur sans les spécifier une par une. Leur nom commence toujours de la même
manière. J'ai essayé comme cela mais cela ne fonctionne pas :

For Each chkObject In Me.Controls
If Left(chkObject.Name, 8) = "chkAdmin" Then
chkObject = False
End If
Next

Je souhaite faire de cette façon car leur nombre risque de changer et je ne
voudrais pas modifier le code à chaque fois.

Avez-vous une idée de la manière de procéder ?

Merci.

--
Patrick


MichDenis
Le #6936291
Cette boucle te libère de la vérification des noms des checkbox

Dim C As Control
For Each C In Me.Controls
If TypeName(C) = "CheckBox" Then
C.Value = False
End If
Next




"Patrick"
Finalement j'ai fait comme cela :

Dim chkControl As MSForms.Control

For Each chkControl In Me.Controls
If Left(chkControl.Name, 8) = "chkAdmin" Then
chkControl = False
End If
Next

--
Patrick


"Patrick" wrote:

Bonjour,

Dans un UserForm, il y a plusieurs CheckBoxes. J'aimerais changer leur
valeur sans les spécifier une par une. Leur nom commence toujours de la même
manière. J'ai essayé comme cela mais cela ne fonctionne pas :

For Each chkObject In Me.Controls
If Left(chkObject.Name, 8) = "chkAdmin" Then
chkObject = False
End If
Next

Je souhaite faire de cette façon car leur nombre risque de changer et je ne
voudrais pas modifier le code à chaque fois.

Avez-vous une idée de la manière de procéder ?

Merci.

--
Patrick


Publicité
Poster une réponse
Anonyme