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

Tester la valeur de Optionbutton

6 réponses
Avatar
ThierryP
Bonjour le forum,

Encore une 'tite question pour aujourd'hui :

Sur une feuille, j'ai trois groupes diff=E9rents d'optionbuttons (bo=EEte =
=E0 outils contr=F4les). A l'ouverture du fichier, je mets tous les boutons=
=E0 False.
Avant de fermer le fichier, je souhaite v=E9rifier qu'il y a bien un bouton=
coch=E9 dans chaque groupe.

J'avoue que j'ai un peu de mal avec la syntaxe...Comment puis-je boucler po=
ur tester chaque bouton ??

Merci d'avance =E0 celui (ou celle) qui m'=E9vitera un mal de cr=E2ne !!

ThierryP

6 réponses

Avatar
DanielCo
Bonjour,
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



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 syntaxe...Comment puis-je boucler pour
tester chaque bouton ??

Merci d'avance à celui (ou celle) qui m'évitera un mal de crâne !!

ThierryP
Avatar
ThierryP
Le mercredi 10 décembre 2014 17:22:52 UTC+1, DanielCo a écrit :
Bonjour,
J'ai loupé quelque chose où il y a forcément un bouton enfoncé pa r
groupe ? Ou alors les groupes ne sont pas dans une frame ?
Daniel



> 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 bie n un
> bouton coché dans chaque groupe.
>
> J'avoue que j'ai un peu de mal avec la syntaxe...Comment puis-je boucle r pour
> tester chaque bouton ??
>
> Merci d'avance à celui (ou celle) qui m'évitera un mal de crâne ! !
>
> ThierryP



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
Avatar
DanielCo
La macro met tous les optionbuttons à True. A la fin, il en restera un
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


Le mercredi 10 décembre 2014 17:22:52 UTC+1, DanielCo a écrit :
Bonjour,
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



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 syntaxe...Comment puis-je boucler
pour tester chaque bouton ??

Merci d'avance à celui (ou celle) qui m'évitera un mal de crâne !!

ThierryP





Bonsoir Daniel,

En fait, j'avais supprimé ce message..... mais finalement j'ai du mal avec la
syntaxe. Tous les boutons sont mis à false à l'ouverture, quel que soit leur
groupname. Si je ne clique sur aucun des boutons, ils restent donc à false à
la fermeture.

Je voudrais donc parcourir ma collection de groupnames, et pour chaque bouton
de ce groupe, tester sa valeur : si au moins un bouton est à vrai,je
renseigne 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
Avatar
MichD
Bonjour,

Fichier exemple : http://cjoint.com/?DLkuZ2Lfnpl
Avatar
ThierryP
C'est bien ce que je disais.... "Shapes(I).OLEFormat.Object.Object.Value", c'est le genre de syntaxe que je ne maîtrise pas vraiment !! Je vais test er ça de ce pas !!

Merci :o))

ThierryP


Le mercredi 10 décembre 2014 18:19:58 UTC+1, DanielCo a écrit :
La macro met tous les optionbuttons à True. A la fin, il en restera un
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


> Le mercredi 10 décembre 2014 17:22:52 UTC+1, DanielCo a écrit :
>> Bonjour,
>> 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
>>
>>
>>
>>> 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 bouto ns à
>>> False. Avant de fermer le fichier, je souhaite vérifier qu'il y a b ien un
>>> bouton coché dans chaque groupe.
>>>
>>> J'avoue que j'ai un peu de mal avec la syntaxe...Comment puis-je bouc ler
>>> pour tester chaque bouton ??
>>>
>>> Merci d'avance à celui (ou celle) qui m'évitera un mal de crâne !!
>>>
>>> ThierryP
>
> Bonsoir Daniel,
>
> En fait, j'avais supprimé ce message..... mais finalement j'ai du mal avec la
> syntaxe. Tous les boutons sont mis à false à l'ouverture, quel que soit leur
> groupname. Si je ne clique sur aucun des boutons, ils restent donc à false à
> la fermeture.
>
> Je voudrais donc parcourir ma collection de groupnames, et pour chaque bouton
> de ce groupe, tester sa valeur : si au moins un bouton est à vrai,je
> renseigne un booleen à vrai et je passe au groupe suivant; si aucun b outon
> n'est coché, je repasse le booleen à faux, et je le teste à la fi n.
>
> 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
Avatar
ThierryP
Le mercredi 10 décembre 2014 20:45:34 UTC+1, MichD a écrit :
Bonjour,

Fichier exemple : http://cjoint.com/?DLkuZ2Lfnpl



Comme toujours !! Complet, efficace et pédagogique !

Un grand merci

ThierryP