[RESOLU] bouton annuler d'une boite de dialogue ne stoppe pas la macro, pbl de code!

chismah

XLDnaute Nouveau
Bonjour,

j'ai créé un bouton qui lance l'impression en permettant de sélectionner l'imprimante via une boite de dialogue.
seulement, lorsque qu'on clique sur annuler dans cette boite de dialogue, l'impression se lance quand même sur l'imprimante par défaut.
je ne voit pas vraiment où et comment modifier le code..

Code:
Private Sub Impression_Click()

Application.Dialogs(xlDialogPrinterSetup).Show
    
 If Cancel = True Then
    Exit Sub
 End If
    
Range("PrintZone").PrintOut

End Sub

Merci d'avance de l'aide que vous pourrez m'apporter!
 
Dernière édition:

chismah

XLDnaute Nouveau
Re : bouton annuler d'une boite de dialogue ne stoppe pas la macro, pbl de code!

Où dois-je placer le "end"?
Le if ayant son end if et le sub son end sub.

Je ne suis pas sur de la formulation, débutant en VBA ca me semblait logique...
Code:
 If Cancel = True Then
    Exit Sub
 End If
 
Dernière édition:

Verba_Tim

XLDnaute Occasionnel
Re : bouton annuler d'une boite de dialogue ne stoppe pas la macro, pbl de code!

Re,
Désolé de répondre si tard ^^'
Le End met fin à toute les procédures en cours, et réinitialise les variables. Test en le mettant à la place du End sub.

Au plaisir de te lire,


VB_T
 

chismah

XLDnaute Nouveau
Re : bouton annuler d'une boite de dialogue ne stoppe pas la macro, pbl de code!

je comprend mieux ce que tu veux dire.
La macro se termine sans problème par le "end sub", en fait, je n'arrive pas a interrompre la macro entre la selection de l'imprimante par défaut via la boite de dialogue, et l'impression de la plage "printzone". interuption qui devrait se produire lorsqu'on clique sur le bouton "annuler" de la boite de dialogue.

la formulation du cancel=true doit etre fausse mais je ne voit pas quoi mettre à la place.
 

chismah

XLDnaute Nouveau
Re : bouton annuler d'une boite de dialogue ne stoppe pas la macro, pbl de code!

c'est résolu, j'ai modifié le code, en fait c'était plutôt simple!
Code:
Private Sub Impression_Click()

 If Application.Dialogs(xlDialogPrint).Show = False Then
   Exit Sub
   Else
     Range("PrintZone").PrintOut
 End If

End Sub

merci beaucoup!
 

Discussions similaires

Statistiques des forums

Discussions
315 284
Messages
2 118 014
Membres
113 406
dernier inscrit
NI-ZE