Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

UserForm - Parcourir les contrôles

2 réponses
Avatar
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

2 réponses

Avatar
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


Avatar
MichDenis
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" a écrit dans le message de news:

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