Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Interroger des options button

sshikamaru

XLDnaute Nouveau
Bonjour

je cherche désespérément à interroger des optionbutton en fonction de leurs groupnames dans une feuille excel, mais je n'y arrive pas.
j'ai essayer quelques trucs comme par exemple
Code:
    Dim ctrl As OLEObject
For Each ctrl In ActiveSheet.OLEObjects
    ctrl.Select
     If InStr(1, ctrl.Name, "OptionButton") <> 0 Then
        If ctrl.Object.Value Then
           MsgBox "nom du bouton d option coché " & ctrl.Name
        End If
    End If
Next
mais je ne sais pas comment y ajouter la recherche de groupname.

avez vous une idée ?
 

Papou-net

XLDnaute Barbatruc
Re : Interroger des options button

Bonjour sshikamaru,

Plutôt que de te compliquer la vie avec l'utilisation de groupes, souvent ingérables, je te propose d'intégrer tes contrôles dans des Frames. Il suffit de masquer leur cadre et leur titre pour lesn rendre transparents à l'utilisateur. La gestion des contrôles en devient alors beaucoup pls simple.

Voir exemple en pièces jointe, à toi d'adapter à ton usage.

Cordialement.

Edit: salut Bernard & Pierrot.
 

Pièces jointes

  • Exemple sshikamaru.xlsm
    19.4 KB · Affichages: 41

Pierrot93

XLDnaute Barbatruc
Re : Interroger des options button

Re,

ou bien ceci :
Code:
MsgBox Feuil1.OLEObjects("OptionButton1").Object.GroupName

Edition : bonjour Papou
ème édition : Aarf... pas vu Bernard bonjour également
 
Dernière édition:

sshikamaru

XLDnaute Nouveau
Re : Interroger des options button

Merci pour ces réponses.
mais je crois en fait avoir mal posé la question.
c'est une bonne idée, mais je ne passe pas par des usrform. donc je ne peux pas utiliser cette méthode.

sous 2010, ceci fonctionne :
Code:
MsgBox Feuil1.OptionButton1.GroupName
ou bien ceci :
Code:
MsgBox Feuil1.OLEObjects("OptionButton1").Object.GroupName

c'est pas tout à fait ça parce que la ça me donne le groupe du bouton prédéfini, d'où je pense avoir mal posé la question, et donc je la reformule, avec une explication que j'ai oublié.


en fait j'ai 6 groupes d'option button, qui s'affichent en fonction d'un choix en tête avec d'autres optionbutton (ça, ça marche). ce que je souhaite, c'est de tester les groupes, pour savoir quel option button de tel ou tel groupe est est cochée.

comment je peux interroger les optionbutton en fonction de leur groupe.

exemple, voici les noms des groupes : Type1, Type4, Type7K, Type4210, Type7142, Type7017

et comment lui demandé quel option button du groupe "Type1" est activé" ?
 

Dranreb

XLDnaute Barbatruc
Re : Interroger des options button

Vous pouvez aussi commencer par ranger les boutons d'options cochée dans un dictionnaire :
VB:
Dim ctrl As OLEObject, Dic As New Dictionary ' Référence à cocher : Microsoft Scripting Runtime
For Each ctrl In ActiveSheet.OLEObjects
     If TypeName(ctrl.Object) = "OptionButton" Then
        If ctrl.Object.Value Then Dic.Add Key:=ctrl.Object.GroupName, Item:=ctrl.Object
        End If: Next ctrl
Ce qui devrait permettre ensuite de récupérer Dic(NomDUnGroupName).Caption
 
Dernière édition:

sshikamaru

XLDnaute Nouveau
Re : Interroger des options button

@Pierrot93 :
en fait, je ne comprends pas comment mettre en oeuvre ton code dans le mien.


@Dranreb:
j'ai activé la référence demandé, mais il me demande objet requis lorsque je fais
Code:
MsgBox Dic("Type4").Caption
 

sshikamaru

XLDnaute Nouveau
Re : Interroger des options button

le code
Code:
If ctrl.Object.Value And Ctrl.Object.GroupName = "Type1" Then
il faut que je l'intègre dans le premier code que j'ai essayer de faire ? ou il faut que je l'utilise tout seul ?
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…