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

Résolu/Fermé
Adirien Messages postés 84 Date d'inscription samedi 11 mai 2013 Statut Membre Dernière intervention 27 janvier 2024 - 2 mars 2021 à 16:25
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 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
A voir également:

6 réponses

yg_be Messages postés 22505 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mars 2024 1 449
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 84 Date d'inscription samedi 11 mai 2013 Statut Membre Dernière intervention 27 janvier 2024 2
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 84 Date d'inscription samedi 11 mai 2013 Statut Membre Dernière intervention 27 janvier 2024 2
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 12029 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2024 1 424
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 84 Date d'inscription samedi 11 mai 2013 Statut Membre Dernière intervention 27 janvier 2024 2 > Le Pingou Messages postés 12029 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2024
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 12029 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2024 1 424 > Adirien Messages postés 84 Date d'inscription samedi 11 mai 2013 Statut Membre Dernière intervention 27 janvier 2024
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 22505 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mars 2024 1 449
2 mars 2021 à 18:42
"ça ne marche pas": que se passe-t-il?
0
yg_be Messages postés 22505 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mars 2024 1 449
2 mars 2021 à 18:43
= True
peut être supprimé.
0
cs_Le Pivert Messages postés 7902 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 novembre 2023 728
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 84 Date d'inscription samedi 11 mai 2013 Statut Membre Dernière intervention 27 janvier 2024 2
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 305
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 84 Date d'inscription samedi 11 mai 2013 Statut Membre Dernière intervention 27 janvier 2024 2
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 305 > Adirien Messages postés 84 Date d'inscription samedi 11 mai 2013 Statut Membre Dernière intervention 27 janvier 2024
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 84 Date d'inscription samedi 11 mai 2013 Statut Membre Dernière intervention 27 janvier 2024 2
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