Tester la valeur de Optionbutton
Le
ThierryP

Bonjour le forum,
Encore une 'tite question pour aujourd'hui :
Sur une feuille, j'ai trois groupes différents d'optionbuttons (boîte =
à outils contrôles). A l'ouverture du fichier, je mets tous les boutons=
à False.
Avant de fermer le fichier, je souhaite vérifier qu'il y a bien un bouton=
coché dans chaque groupe.
J'avoue que j'ai un peu de mal avec la syntaxeComment puis-je boucler po=
ur tester chaque bouton ??
Merci d'avance à celui (ou celle) qui m'évitera un mal de crâne !!
ThierryP
Encore une 'tite question pour aujourd'hui :
Sur une feuille, j'ai trois groupes différents d'optionbuttons (boîte =
à outils contrôles). A l'ouverture du fichier, je mets tous les boutons=
à False.
Avant de fermer le fichier, je souhaite vérifier qu'il y a bien un bouton=
coché dans chaque groupe.
J'avoue que j'ai un peu de mal avec la syntaxeComment puis-je boucler po=
ur tester chaque bouton ??
Merci d'avance à celui (ou celle) qui m'évitera un mal de crâne !!
ThierryP
J'ai loupé quelque chose où il y a forcément un bouton enfoncé par
groupe ? Ou alors les groupes ne sont pas dans une frame ?
Daniel
Bonsoir Daniel,
En fait, j'avais supprimé ce message..... mais finalement j'ai du mal ave c la syntaxe.
Tous les boutons sont mis à false à l'ouverture, quel que soit leur gro upname.
Si je ne clique sur aucun des boutons, ils restent donc à false à la fe rmeture.
Je voudrais donc parcourir ma collection de groupnames, et pour chaque bout on de ce groupe, tester sa valeur : si au moins un bouton est à vrai,je r enseigne un booleen à vrai et je passe au groupe suivant; si aucun bouton n'est coché, je repasse le booleen à faux, et je le teste à la fin.
Mais je sèche lamentablement sur l'écriture !! J'ai commencé ça :
For Each Bouton In ActiveSheet.OLEObjects
' If Bouton.Name = "Cloture" Then GoTo suite
' If UCase(Bouton.Object.GroupName) = "CAUSE" Then GoTo suite
' With ActiveSheet.OLEObjects(Bouton.Name).Object
' MsgBox Bouton.Name & Bouton.Object
' Select Case UCase(.GroupName)
mais ce n'est pas vraiment top !
Merci d'avance de tout coup de main !
ThierryP
par groupe :
Sub test1()
With Sheets("Feuil2")
For I = 1 To .Shapes.Count
If .Shapes(I).Type = msoOLEControlObject Then
If .Shapes(I).OLEFormat.progID = "Forms.OptionButton.1"
Then
.Shapes(I).OLEFormat.Object.Object.Value = True
End If
End If
Next I
End With
End Sub
Daniel
Fichier exemple : http://cjoint.com/?DLkuZ2Lfnpl
Merci :o))
ThierryP
Le mercredi 10 décembre 2014 18:19:58 UTC+1, DanielCo a écrit :
Comme toujours !! Complet, efficace et pédagogique !
Un grand merci
ThierryP