Exécuter une macro en fonction du bouton d'option choisi [Résolu]

Signaler
Messages postés
57
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
12 mars 2021
-
Messages postés
16477
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
10 juin 2021
-
Bonjour,

Ma question sera peut être bête mais je débute vraiment avec les userform :

J'ai créer un userform comme ceci


L'idée c'est que j'ai 5 macros qui s'apelle respectivement Lundi,Mardi,etc...

Je veux que la macro correspondante au bouton d'option choisi se lance quand je valide le userform.

Merci à ceux qui pourront m'aider

Configuration: Windows / Chrome 88.0.4324.190

6 réponses

Messages postés
16017
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 juin 2021
867
bonjour,
moi je ferais un code qui s'exécute quand le bouton "valider" est cliqué.
dans ce code, je vérifierais quelle est l'option choisie.
Messages postés
57
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
12 mars 2021

En faite je viens juste de trouver la réponse à ma question...

Je suis aller dans le code de chaque bouton d'option et j'ai tapé ceci :

Private Sub OptionButton1_Click()
Call Lundi
End Sub

Private Sub OptionButton2_Click()
Call Mardi
End Sub

Private Sub OptionButton3_Click()
Call Mercredi
End Sub

etc...
Messages postés
57
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
12 mars 2021

Après réflexion ça ne marche pas exactement proprement comme il faudrait car la macro se lance quand je clique sur le bouton d'option et non pas quand je la sélectionne et appui sur "Valider"...
Il faudrait surement que je stock le contenu du bouton d'option dans une variable et c'est le bouton valider qui devrait exécuter la macro en fonction de la variable.

Maintenant faut mettre ça en code..

J'ai essayé ça mais non ça ne marche pas :

Private Sub CommandButton1_Click()
If Me.OptionButton1.Value = True Then Call Lundi
ElseIf Me.OptionButton2.Value = True Then Call Mardi
ElseIf Me.OptionButton3.Value = True Then Call Mercredi
ElseIf Me.OptionButton4.Value = True Then Call Jeudi
ElseIf Me.OptionButton5.Value = True Then Call Vendredi
End If

End Sub
Messages postés
10059
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 juin 2021
1 149
Bonjour,
Avez-vous essayé d'exécuter un pas à pas sur le code afin de voir ou est le problème ?
Salutations
Le Pingou
Messages postés
57
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
12 mars 2021
>
Messages postés
10059
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 juin 2021

Le pas à pas ne m'a pas beaucoup aidé je pense que c'est pas juste une erreur de saisie la syntaxe ne doit pas convenir
Messages postés
10059
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 juin 2021
1 149 >
Messages postés
57
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
12 mars 2021

Bonjour,
Dommage et pourtant c'est possible de voir ce qui ne vas pas dans l'exécution.
Salutations
Le Pingou
Messages postés
16017
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 juin 2021
867
"ça ne marche pas": que se passe-t-il?
Messages postés
16017
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 juin 2021
867
= True
peut être supprimé.
Messages postés
7416
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 juin 2021
637
Bonjour,

essaie ceci:

Private Sub CommandButton1_Click()
If Me.OptionButton1.Value = True Then 
Call Lundi
ElseIf Me.OptionButton2.Value = True Then 
Call Mardi
ElseIf Me.OptionButton3.Value = True Then 
Call Mercredi
ElseIf Me.OptionButton4.Value = True Then 
Call Jeudi
ElseIf Me.OptionButton5.Value = True Then 
Call Vendredi
End If
End Sub


Messages postés
57
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
12 mars 2021

C'est la même macro que j'au suggéré sur ma réponse <2> et ça ne fonctionne pas
Messages postés
16477
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
10 juin 2021
3 189
Bonjour

code non vérifié

Option Explicit
'------------------------------------------------------------
Private Sub CommandButton1_Click()
Dim Ctrl As Control
'------------------------
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.OptionButton Then
If Ctrl.Value Then
Call Ctrl.Caption
Exit For
End If
End If
Next
End Sub


Il aurait été plus facile pour tester de joindre le fichier plut^t qu'une photo..... :o)
Messages postés
57
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
12 mars 2021

Merci Michel, mais j'ai eu une erreur sur la partie
Call. Ctrl.Caption
Messages postés
16477
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
10 juin 2021
3 189 >
Messages postés
57
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
12 mars 2021

Re Adirien

pourquoi as tu mis un point entre call et ctrl.caption ?

mais si ta dernière modif fonctione, c'est le principal ! :o)
Messages postés
57
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
12 mars 2021

Finalement j'ai fini par trouvé quelque chose de similaire mais non pas avec la fonction
Call
mais
Run
:

Private Sub CommandButton1_Click()
Dim Ctrl As Control
For Each Ctrl In Me.Controls
If Ctrl.Name Like "OptionButton*" Then
If Ctrl.Value = True Then Run Ctrl.Caption
End If
Next Ctrl
End Sub