XL 2010 annuler impression sans blocage macro

gh4

XLDnaute Occasionnel
bonjour a tous,
dans mon prog je lance une impression pdf. par
Application.ActivePrinter = "Microsoft Print to PDF sur Ne03:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Microsoft Print to PDF sur Ne03:", PrintToFile:=True, Collate:=True
la boite de dialogue Windows s'affiche "enregistrer" "annuler"
si je clique sur "Annuler" le prog se bloque sur
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Microsoft Print to PDF sur Ne03:", PrintToFile:=True, Collate:=True
avez vous une idée pour contourner ce problème
par avance merci
cdt
 

Pièces jointes

  • test2.xls
    68.5 KB · Affichages: 1
Solution
Bonjour gh4, JM,
si je clique sur "Annuler" le prog se bloque sur
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Microsoft Print to PDF sur Ne03:", PrintToFile:=True, Collate:=True
Alors introduisez On Error Resume Next :
VB:
On Error Resume Next
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Microsoft Print to PDF sur Ne03:", PrintToFile:=True, Collate:=True
A+

Staple1600

XLDnaute Barbatruc
Bonjour @gh4, le fil

@gh4
Essaie ce bout de code (pour test pour le moment)
Sur une feuille non vide, lance cette macro
VB:
Sub Lancer_Choix_Imprimante()
Application.CommandBars.ExecuteMso "PrintPreviewAndPrint"
End Sub
Que se passe-t-il sur ton PC ?

NB: Sur Office 365, je peux Annuler sans avoir de message d'erreur
 

gh4

XLDnaute Occasionnel
Bonjour @gh4, le fil

@gh4
Essaie ce bout de code (pour test pour le moment)
Sur une feuille non vide, lance cette macro
VB:
Sub Lancer_Choix_Imprimante()
Application.CommandBars.ExecuteMso "PrintPreviewAndPrint"
End Sub
Que se passe-t-il sur ton PC ?

NB: Sur Office 365, je peux Annuler sans avoir de message d'erreur
bonjour Staple 1600
toujours en excel 2003
la macro bloque sur Execute MSO
Message VBA "erreur de compilation membre de methode ou de donnes intouvable"
 

job75

XLDnaute Barbatruc
Bonjour gh4, JM,
si je clique sur "Annuler" le prog se bloque sur
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Microsoft Print to PDF sur Ne03:", PrintToFile:=True, Collate:=True
Alors introduisez On Error Resume Next :
VB:
On Error Resume Next
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Microsoft Print to PDF sur Ne03:", PrintToFile:=True, Collate:=True
A+
 

gh4

XLDnaute Occasionnel
Re , Bonjour @job75

@gh4
Et avec ceci, il passe quoi sur Excel 2003 ?
Code:
Sub Choix_Imprimante()
Application.Dialogs(xlDialogPrint).Show
End Sub
NB: Sur mon PC, je peux cliquer sur Annuler
(Imprimante par défaut chez moi : Microsoft Print to PDF)
merci staple1600 pour ton aide job75 à trouver la solution
cela marche parfaitement
désolé pour le dérangement mais un grand merci quand même
 

job75

XLDnaute Barbatruc
Pour imprimer un fichier Excel en PDF on utilise en général cette macro :
VB:
Sub PDF()
If MsgBox("Imprimer en PDF ?", 4) = 6 Then _
    ActiveSheet.ExportAsFixedFormat xlTypePDF, Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".")) & "pdf"
End Sub
Le fichier Excel doit avoir été enregistré, plusieurs feuilles peuvent être sélectionnées.
 

Staple1600

XLDnaute Barbatruc
Bonjour @job75

@gh4 utilise Excel 2003
C'est pour cela que ma proposition dans sa précédente discussion boguait
(ActiveSheet.ExportAsFixedFormat disponible que depuis Excel 2007, en addon)

Voir ici pour la discussion en question
 

Statistiques des forums

Discussions
312 196
Messages
2 086 102
Membres
103 117
dernier inscrit
augustin.morille