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.
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.
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 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é" ?
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