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

Résolu
Adirien Messages postés 86 Statut Membre -  
michel_m Messages postés 18903 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

6 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
  2. Adirien Messages postés 86 Statut Membre 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
  3. Adirien Messages postés 86 Statut Membre 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
    1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 478
       
      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
      1. Adirien Messages postés 86 Statut Membre 2 > Le Pingou Messages postés 12275 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
      2. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 478 > Adirien Messages postés 86 Statut Membre
         
        Bonjour,
        Dommage et pourtant c'est possible de voir ce qui ne vas pas dans l'exécution.
        Salutations
        Le Pingou
        0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      "ça ne marche pas": que se passe-t-il?
      0
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      = True
      peut être supprimé.
      0
  4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. Adirien Messages postés 86 Statut Membre 2
       
      C'est la même macro que j'au suggéré sur ma réponse <2> et ça ne fonctionne pas
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. Adirien Messages postés 86 Statut Membre 2
       
      Merci Michel, mais j'ai eu une erreur sur la partie
      Call. Ctrl.Caption
      0
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > Adirien Messages postés 86 Statut Membre
         
        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
  7. Adirien Messages postés 86 Statut Membre 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