Tester valeur d'un OptionButton dans une boucle

  • Initiateur de la discussion Initiateur de la discussion ailete
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

ailete

Guest
Bonsoir,

j'ai un parcours d'OptionButton avec des tests sur leur Value.

Code:
Dim ctrl as Control
For each ctrl in me.Controls
If Ctrl.Value = True Then ...
Next

Seulement le problème est qu'une erreur apparaît, il me dit que l'attribut Value ne peut pas être utilisé avec un objet de type "Control".

Avez-vous la solution pour que je puisse tester si le bouton est coché?

Merci d'avance
 
Re : Tester valeur d'un OptionButton dans une boucle

Bonsoir

Voici un façon de faire

Code:
Private Sub CommandButton1_Click()
Dim c As Control
For Each c In Me.Controls
If TypeOf c Is MSForms.OptionButton Then
If c Then
MsgBox c.Caption
End If
End If
Next c
End Sub

EDITION: Bonsoir Papou 😉
 
Dernière édition:
Re : Tester valeur d'un OptionButton dans une boucle

Bonsoir ailete,

Dans le cas d'utilisation d'une boucle For Each ... Next, tu n'as pas besoin de déclarer la variable, elle est automatiquement considérée comme un objet (même si tu as déclaré Option Explicit). Tu dois donc simplement supprimer la 1ère ligne de ton code.

Cordialement.

Edit : Bonsoir Staple1600
 
Dernière édition:
Re : Tester valeur d'un OptionButton dans une boucle

Bonjour à tous,

@Papour🙂
Dans le cas d'utilisation d'une boucle For Each ... Next, tu n'as pas besoin de déclarer la variable, elle est automatiquement considérée comme un objet (même si tu as déclaré Option Explicit).

chez moi sous 2003, si non déclarée avec "Option Explicit" provoque une erreur de compilation, variable non définie...

bonne journée
@+
 
Re : Tester valeur d'un OptionButton dans une boucle

Bonjour à tous,

@Papour🙂


chez moi sous 2003, si non déclarée avec "Option Explicit" provoque une erreur de compilation, variable non définie...

bonne journée
@+

Bonjour à tous,

Bonjour Pierrot93,

Chez moi, sous XL2003 également, ça fonctionne sans erreur.

Si tu veux bien tester, je te joins un fichier exemple.

Bonne journée.

Cordialement.
 

Pièces jointes

Re : Tester valeur d'un OptionButton dans une boucle

Re,

@Papou🙂
ta variable est déclarée dans ton fichier.. et pas d'option explicit dans le module de l'usf... pas du tout comprendre moi... 🙂
Code:
Private Sub CommandButton1_Click()
Dim ctrl As Control
For Each ctrl In Me.Controls
  If ctrl.Value = True Then MsgBox ctrl.Caption
Next
End Sub
 
Re : Tester valeur d'un OptionButton dans une boucle

Re,

et si je modifie ainsi :
Code:
Option Explicit
Private Sub CommandButton1_Click()
For Each ctrl In Me.Controls
  If ctrl.Value = True Then MsgBox ctrl.Caption
Next
End Sub

message d'erreur, variable non définie....
 
Re : Tester valeur d'un OptionButton dans une boucle

bonjour les amis🙂🙂🙂


si pas option explicit pas oblige de declarer les variables
dans ce cas pose pas de pb...
mais dans une macro "basique" si pas declare explicitement toutes les variables elles sont considerees comme du variant ce qui peut poser des pb.. de lenteur execution ect..

en fin de compte option explicit impose seulement de declarer les variables ce qui est trés bien pour les personnes qui debute en vba
 
Re : Tester valeur d'un OptionButton dans une boucle

Re Pierrot93,

Effectivement, j'ai laissé la déclaration de la variable ctrl.

Mais je persiste et signe : après l'avoir supprimée, ça fonctionne toujours aussi bien chez moi.

Par contre, j'ai bien déclaré Option Explicit, mais dans Module1 au lieu de UserForm1.

Je te renvoie le fichier corrigé.

Cordialement.
 

Pièces jointes

Re : Tester valeur d'un OptionButton dans une boucle

Re,

Par contre, j'ai bien déclaré Option Explicit, mais dans Module1 au lieu de UserForm1.
Aarf, ceci explique cela, il aurait fallut le placer dans le module de l'usf pour que cela eut un effet....

cf, extrait de l'aide vba :
Option Explicit, instruction

Instruction utilisée au niveau module pour imposer la déclaration explicite de toutes les variables de ce module.

bonne journée
@+
 
Re : Tester valeur d'un OptionButton dans une boucle

Re,
Bonjour Laetitia🙂
juste pour saluer Laetitia🙂 que je n'avois point vu tout à l'heure... désolé...

Edition :
en fin de compte option explicit impose seulement de declarer les variables ce qui est trés bien pour les personnes qui debute en vba

Aarf perso, je le met systèmatiquement... mais je suis un grand débutant🙂🙂...
 
Re : Tester valeur d'un OptionButton dans une boucle

Re : Laetitia,

Bonjour à toi,

Merci pour cette précision qui, je l'avoue, m'échappai encore malgré une intense utilisation de VBA.

Re : Pierrot93,

Aarf perso, je ne le mets jamais... mais je suis un grand fainéant !

Cordialement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
432
Réponses
10
Affichages
646
Réponses
7
Affichages
815
D
Réponses
49
Affichages
9 K
D
T
Réponses
2
Affichages
1 K
Tubule
T
N
Réponses
1
Affichages
675
New_VBA_User
N
Retour