Msgbox vbYesNoCancel

Résolu/Fermé
maxmen67 Messages postés 56 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 juillet 2019 - Modifié par jordane45 le 5/01/2016 à 14:49
maxmen67 Messages postés 56 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 juillet 2019 - 5 janv. 2016 à 15:05
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

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
5 janv. 2016 à 14:52
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
maxmen67 Messages postés 56 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 juillet 2019 1
5 janv. 2016 à 15:05
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