IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Msg Box 3 choix [XL-2019]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2018
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2018
    Messages : 281
    Par défaut Msg Box 3 choix
    Bonjour à toutes et tous

    Je cherche a utiliser la MsgBox("" , _ vbYesNoCancel

    le test vbYes Then fonctionne
    le test vbNo Then fonctionne
    Je n'arrive pas à faire le 3ème test Cancel.

    Voici mon code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub Ouverture_Planning()
     
    Application.ScreenUpdating = False
     
    If MsgBox("Voulez vous identifier du Présentiel ?", _
           vbYesNoCancel + vbQuestion + vbDefaultButton2) = vbYes Then
     
        Sheets("Planning Stagiaire").Visible = True 'OK
        Sheets("Planning Stagiaire").Activate
        Range("A1").Activate
     
    Else
     
        If MsgBox("Voulez vous identifier du Présentiel ?", _
           vbYesNoCancel + vbQuestion + vbDefaultButton2) = vbNo Then
     
            Application.Run "Impression_Planning_Stag"
        Else
            Range("A1").Activate
     
        End If
     
    End If
     
    End Sub
    J'ai trouvé ce code qui fait le boulot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub Gestion_Présentiel()
    ' Adaptation de la macro de pijaku / https://www.developpez.net/forums/d2103564/logiciels/microsoft-office/excel/macros-vba-excel/msgbox-choix-multiples/
    ' Cette macro fonctionne et fait le boulot.
     
    Dim Lignes(2) As String, reponse As Integer
        Lignes(0) = "          Oui = Ouverture planning"
        Lignes(1) = "                Non = Impression directe"
        Lignes(2) = "                      Annuler = Ferme le message"
        reponse = MsgBox(Join(Lignes, vbCrLf), vbYesNoCancel, "Voulez vous identifier du Présentiel ?")
        Select Case reponse
            Case vbYes
                Sheets("Planning Stagiaire").Visible = True 'OK
                Sheets("Planning Stagiaire").Activate
                Range("A1").Activate
     
            Case vbNo
                Application.Run "Impression_Planning_Stag"  'lance la Sub Impression_Planning_Stag()
     
            Case vbCancel
                Range("A1").Activate
        End Select
     
    End Sub
    Mais, pour ne pas mourir idiot, comment corriger mon code ?
    Merci pour votre aide
    Philippe

  2. #2
    Membre averti
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Juin 2020
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2020
    Messages : 33
    Par défaut
    Salut,
    Tu peux assigner la réponse de ta boite de dialogue à une variable puis faire tes tests sur cette variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Sub Ouverture_Planning()
     
    Application.ScreenUpdating = False
     
    Reponse = MsgBox("Voulez vous identifier du Présentiel ?", _
            vbYesNoCancel + vbQuestion + vbDefaultButton2)
     
    If Reponse = vbYes Then
     
        Sheets("Planning Stagiaire").Visible = True 'OK
        Sheets("Planning Stagiaire").Activate
        Range("A1").Activate
     
    Else
     
        If Reponse = vbNo Then
     
            Application.Run "Impression_Planning_Stag"
        Else
            Range("A1").Activate
     
        End If
     
    End If
    En l'état, ton code lui demande d'afficher la boite à chaque "if".
    Voilà je sais pas si je suis clair et j'espère que ça répond à ta question.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2018
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2018
    Messages : 281
    Par défaut
    Bonjour Daddy,

    Merci pour ton aide.
    Le code fonctionne parfaitement.
    Cdt
    Philippe

  4. #4
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 509
    Par défaut
    Salut
    Ou directement avec un Select Case
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
        Select Case MsgBox("Voulez-vous identifier du présentiel ?" & vbCrLf _
                           & "" & vbCrLf _
                           & "Oui pour Ouverture planning" & vbCrLf _
                           & "Non pour l'impression directe" & vbCrLf _
                           & "Annuler pour quitter", vbYesNoCancel Or vbQuestion, "")
     
     
            Case vbYes
                Sheets("Planning Stagiaire").Visible = True
                Sheets("Planning Stagiaire").Activate
                Range("A1").Activate
     
            Case vbNo
     
                Application.Run "Impression_Planning_Stag"
     
            Case vbCancel
                        Range("A1").Activate
        End Select

  5. #5
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2018
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2018
    Messages : 281
    Par défaut
    Bonjour Valtrase,

    Merci pour cette proposition que je vais tester.
    Cdt
    Philippe

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Msg Box d'avertissement
    Par pooi1 dans le forum IHM
    Réponses: 1
    Dernier message: 08/07/2007, 15h56
  2. Apparition d'une msg box à choix multiple
    Par Hydex dans le forum IHM
    Réponses: 5
    Dernier message: 25/05/2007, 08h21
  3. Requete création de table sans msg box
    Par louroulou dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 27/06/2006, 16h04
  4. Msg Box requete action
    Par Sam 069 dans le forum Access
    Réponses: 3
    Dernier message: 28/04/2006, 09h25
  5. Msg box "Ne plus afficher ce message"
    Par b_steph_2 dans le forum Access
    Réponses: 5
    Dernier message: 01/02/2006, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo