Exécuter une macro en fonction du bouton d'option choisi

Résolu/Fermé
Adirien
Messages postés
59
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
9 décembre 2021
- 2 mars 2021 à 16:25
michel_m
Messages postés
16574
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
3 août 2022
- 4 mars 2021 à 09:11
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

yg_be
Messages postés
20039
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 août 2022
1 196
2 mars 2021 à 16:33
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.
0
Adirien
Messages postés
59
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
9 décembre 2021

2 mars 2021 à 16:37
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...
0
Adirien
Messages postés
59
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
9 décembre 2021

Modifié le 2 mars 2021 à 17:07
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
0
Le Pingou
Messages postés
11112
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
13 août 2022
1 299
2 mars 2021 à 18:34
Bonjour,
Avez-vous essayé d'exécuter un pas à pas sur le code afin de voir ou est le problème ?
Salutations
Le Pingou
0
Adirien
Messages postés
59
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
9 décembre 2021
> Le Pingou
Messages postés
11112
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
13 août 2022

3 mars 2021 à 17:40
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
0
Le Pingou
Messages postés
11112
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
13 août 2022
1 299 > Adirien
Messages postés
59
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
9 décembre 2021

3 mars 2021 à 18:56
Bonjour,
Dommage et pourtant c'est possible de voir ce qui ne vas pas dans l'exécution.
Salutations
Le Pingou
0
yg_be
Messages postés
20039
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 août 2022
1 196
2 mars 2021 à 18:42
"ça ne marche pas": que se passe-t-il?
0
yg_be
Messages postés
20039
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 août 2022
1 196
2 mars 2021 à 18:43
= True
peut être supprimé.
0
cs_Le Pivert
Messages postés
7803
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2022
714
3 mars 2021 à 08:59
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


0
Adirien
Messages postés
59
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
9 décembre 2021

3 mars 2021 à 17:41
C'est la même macro que j'au suggéré sur ma réponse <2> et ça ne fonctionne pas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m
Messages postés
16574
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
3 août 2022
3 277
Modifié le 3 mars 2021 à 14:30
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)
0
Adirien
Messages postés
59
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
9 décembre 2021

3 mars 2021 à 17:49
Merci Michel, mais j'ai eu une erreur sur la partie
Call. Ctrl.Caption
0
michel_m
Messages postés
16574
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
3 août 2022
3 277 > Adirien
Messages postés
59
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
9 décembre 2021

4 mars 2021 à 09:11
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)
0
Adirien
Messages postés
59
Date d'inscription
samedi 11 mai 2013
Statut
Membre
Dernière intervention
9 décembre 2021

3 mars 2021 à 17:51
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
0