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

sshikamaru

XLDnaute Nouveau
Re : Interroger des options button

Merci pour ces réponses.
mais je crois en fait avoir mal posé la question.
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.
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:

Discussions similaires

Statistiques des forums

Discussions
312 554
Messages
2 089 540
Membres
104 206
dernier inscrit
bperring