Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - Si Application.ActivePrinter = erreur, prend l'autre !

Int0x

XLDnaute Occasionnel
Bonjour le forum,

Je me permets de vous solliciter car il me manque un bout de code.
J'ai fait un fichier qui permet d'imprimer des onglets sur demande, en PDF.

Le code pour sélectionner PDF creator est le suivant
Application.ActivePrinter = "PDFCreator sur Ne00:"

Le problème, c'est que certains ont des versions différentes et que ca plante car leur version est
Application.ActivePrinter = "PDFCreator sur Ne03:"

Je souhaiterais donc écrire:
si
Application.ActivePrinter = "PDFCreator sur Ne00:"
fait bugguer la macro, alors prends plutôt
Application.ActivePrinter = "PDFCreator sur Ne03:"

Comment pourrais-je réécrire mon bout de code ?
Code:
Application.ActivePrinter = "PDFCreator sur Ne00:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"PDFCreator sur Ne00:", Collate:=True

Par avance merci,
Int0x
 

Misange

XLDnaute Barbatruc
Re : VBA - Si Application.ActivePrinter = erreur, prend l'autre !

Bonjour

sans te casser la nénette : place
on error resume next
avant application.activeprinter...: si la ligne buggue il la saute et va à la suivante
 

Int0x

XLDnaute Occasionnel
Re : VBA - Si Application.ActivePrinter = erreur, prend l'autre !

Bonjour Misange,

C'est exactement le bout de code qui me manquait !
J'ai fait des recherches en parant de ça, c'est vraiment trèèèèès pratique !

Merci beaucoup
 

Misange

XLDnaute Barbatruc
Re : VBA - Si Application.ActivePrinter = erreur, prend l'autre !

Attention, cette solution est à réserver pour le genre de situation que tu décris : tu sais que ton code peut générer une erreur, erreur que tu connais parfaitement et que tu n'as pas besoin de gérer autrement. Nickel dans ce cas. En revanche, c'est une instruction à proscrire quand tu mets au point une macro car tu n'as aucun message d'erreur qui t'indique ce qui se passe.
 

Modeste geedee

XLDnaute Barbatruc
Re : VBA - Si Application.ActivePrinter = erreur, prend l'autre !

Bonsour®
utiliser une detection d'erreur.

avant la commande d'impresssion ou de mise en page :
On error goto ErrImp
./.
ton code

./.
exit sub
ErrImp:
Application.Dialogs(xlDialogPrinterSetup).Show
resume next
end sub
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…