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

Résolu
Adirien Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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   Statut Membre Dernière intervention   2
 
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   Statut Membre Dernière intervention   2
 
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 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
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   Statut Membre Dernière intervention   2 > Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458 > Adirien Messages postés 84 Date d'inscription   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
"ça ne marche pas": que se passe-t-il?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
= True
peut être supprimé.
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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   Statut Membre Dernière intervention   2
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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   Statut Membre Dernière intervention   2
 
Merci Michel, mais j'ai eu une erreur sur la partie
Call. Ctrl.Caption
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > Adirien Messages postés 84 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   2
 
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