Msgbox vbYesNoCancel

Résolu
maxmen67 Messages postés 58 Statut Membre -  
maxmen67 Messages postés 58 Statut Membre -
Bonjour,

Je viens de réaliser un petit code qui permet l'impression d'un formulaire excel par simple clic sur un bouton.

Lorsque la macro est exécutée, un msgbox ( avec 3 choix: oui, non, annuler ) s'ouvre et permet de choisir si on veut imprimer 1 ou 2 pages du formulaire.

Jusque là tout fonctionne...

Le problème est lorsqu'on clic sur annuler, la macro est censée s'arrêter "Exit sub", mais contre toute attente, une page est quand même imprimée...

Voir code ci-dessous:

Sub impr()

' imprimer Macro

If MsgBox("Imprimer la page photos ?", vbYesNoCancel, "Impression") = vbYes Then
    
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Collate:=True, IgnorePrintAreas:=False


Else
If vbNo Then
  
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True, IgnorePrintAreas:=False


If vbCancel Then
Exit Sub

End If
End If
End If
End Sub


Aurais-je omis une erreur de syntaxe ?

Merci d'avance!

2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    Oui...
    Essayes ceci :

    Sub impr()
    Dim imprimer
    ' imprimer Macro
        imprimer = MsgBox("Imprimer la page photos ?", vbYesNoCancel, "Impression")
        If imprimer = vbYes Then
          ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Collate:=True, IgnorePrintAreas:=False
        ElseIf imprimer = vbNo Then
          ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True, IgnorePrintAreas:=False
        ElseIf imprimer = vbCancel Then
          Exit Sub
        End If
    
    End Sub
    

    3
  2. maxmen67 Messages postés 58 Statut Membre 1
     
    Parfait!

    Je n'aurais pas pensé qu'identifier la variable "imprimer" aurait pu changer la donne.

    ça m'aidera pour les prochains codes.

    Merci.
    0