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

Groupe d'options

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jacques87

XLDnaute Accro
Bonjour à tous,

J'ai un trou de mémoire, ce n'est même plus un trou mais un abîme.

J'utilises un Frame (Groupe) d'options contenant un nombre important de OptionButton.
Je veux récupérer le Caption du Bouton activé grâce à une boucle du genre

For Each Ctrl in Me.Frame1.Controls
If ctrl.Value = True Then Me.TextBox1 = Ctrl.Caption
Exit For
Next Ctrl

et ainsi éviter toute une série de :

Private Sub OptionButton1_Click()
Me.TextBox1.Value = OptionButton1.Caption
End Sub

Mais si mes souvenirs sont bons(car il m'en reste encore quelques uns) la propriété Value d'un OptionButton reste toujours à False, donc plantage

Et pourtant j'ai réalisé (il y a longtemps) ce genre de chose, mais plus moyen de m'en rappeler

Donc un grand merci à ceux ou celles qui me rafraîchiront la mémoire avant qu'Elsheimer ne s'intéresse trop à moi.
 
Re : Groupe d'options

Bonjour Jacques (rebonjour en fait), bonjour le forum,

Il faut que tous les OptionButtons aient le même GroupName pour que ça marche. Voir la propriété GroupName...


Édition :


Attention à ton Exit For !

Code:
For Each Ctrl in Me.Frame1.Controls
If ctrl.Value = True Then Me.TextBox1 = Ctrl.Caption : Exit for
Next Ctrl
 
Dernière édition:
Re : Groupe d'options

Bonsoir Robert,

Merci d'avoir consacré un peu de ton temps en te penchant sur ma question.

1) le Exit For mal placé est consécutif à une étouderie de ma part

2) J'avais bien attribué un GroupName à mes OptionButton

En fait le problème est le suivant :
J'obtiens satisfaction si dans l'userform j'ajoute un CommandButton qui déclenchera la procédure et me donnera ce que je veux
Mais j'aimerai passé outre ce CommandButton et obtenir le résultat en cliquant uniquement sur un des OptionButton de ma liste

Je te joins un bout de fichier pour illustrer ma question

Encore merci
 
Re : Groupe d'options

bonjour chers Jacques et Robert


Un exemple en utilisant un module de classe

Code:
'--------------------------------------
'dans un module standard
Option Explicit

Public Collect As Collection
'--------------------------------------

Code:
'--------------------------------------
'à placer dans le module objet du UserForm
Option Explicit

Private Sub UserForm_Initialize()
    Dim Obj As Control
    Dim Cl As Classe1
        
    Set Collect = New Collection
    
    'boucle sur les objets du Frame
    For Each Obj In Me.Frame1.Controls
        'verifie s'il s'agit d'un optionButton
        If TypeOf Obj Is MSForms.OptionButton Then
            Set Cl = New Classe1
            Set Cl.Opt = Obj
            Collect.Add Cl
        End If
    Next Obj
End Sub
'--------------------------------------

Code:
'--------------------------------------
'dans un module de classe nommé "Classe1"
Option Explicit

Public WithEvents Opt As MSForms.OptionButton

'exemple pour gérer l'evenement clic de l'objet optionButton
Private Sub Opt_Click()
    UserForm1.TextBox1 = Opt.Caption
End Sub
'--------------------------------------


Bonne journée
MichelXld
 
Re : Groupe d'options

Bonjour Michel,
Rebonjour Robert,

Michel que ferions nous sans toi ?

Je me suis trituré les méninges une bonne partie de la soirée (même de la nuit) pour retouver la "méthode" me permettant d'obtenir satisfaction.
Je me heurtais toujours sur l'utilisation de l'évènement adéquat, alors qu'évidemment cette procédure évènementielle était à construire.

Comme je n'utilise que très très rarement les modules de classe, par peur d'oublier de nouveau, un jour prochain, cette "méthode", je vais précieusement ranger mon exemple pour le cas où

Michel, une fois de plus mille mercis et je te souhaite de passer un excellent week-end (d'autant plus que le temps semble se remettre au grand soleil, c'est le cas chez moi)

Toutes mes amitiés
De même envers Robert que je remercie également

Au plaisir de vous croiser sur XLD.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
301
Réponses
21
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…