Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Changer d'imprimante dans VBA (Excel 2000)

6 réponses
Avatar
Jean-Marc
Bonsoir,
Je cherche à changer d'imprimante pour sortir un document, puis me
remettre sur l'imprimante d'origine

Vu l'indication de l'aide d'Excell j'ai écrit :

Imp_depart = Application.ActivePrinter
Application.ActivePrinter = "Nom de l'imprimante2"
.....
..... impression
.....
Application.ActivePrinter = Imp_depart

mais cela plante à l'éxécution

Auriez une explication ou une autre méthode?

Merci d'avance

Jean-Marc

6 réponses

Avatar
LSteph
Bonsoir,

Avec 2000 je ne sais pas, mais chez moi voici un test qui
met un petit temps à s'executer mais fonctionne:

''''''
Sub testprinter()
Dim imp1 As String
With Application
imp1 = .ActivePrinter
.ActivePrinter = "PDFCreator sur Ne00:"

MsgBox "avant: " & imp1 & vbCrLf _
& "maintenant: " & .ActivePrinter

.ActivePrinter = imp1
End With
End Sub
''''''''

Cordialement.

lSteph

Bonsoir,
Je cherche à changer d'imprimante pour sortir un document, puis me
remettre sur l'imprimante d'origine


Imp_depart = Application.ActivePrinter
Application.ActivePrinter = "Nom de l'imprimante2"
.....
..... impression
.....
Application.ActivePrinter = Imp_depart

mais cela plante à l'éxécution

Auriez une explication ou une autre méthode?

Merci d'avance

Jean-Marc




Avatar
JLuc
*Bonjour Jean-Marc*,
C'est que le nom n'est pas écrit correctement.
Mets l'imprimante que tu veux utiliser par défaut (dans le gestionnaire
d'imprimantes)

Sub RecupNom()
[A1] = Application.ActivePrinter
End Sub

Ensuite, fais un copier/coller du nom ainsi obtenu dans ta macro. C'est
plus sûr ;-)

Bonsoir,
Je cherche à changer d'imprimante pour sortir un document, puis me
remettre sur l'imprimante d'origine


Imp_depart = Application.ActivePrinter
Application.ActivePrinter = "Nom de l'imprimante2"
.....
..... impression
.....
Application.ActivePrinter = Imp_depart

mais cela plante à l'éxécution

Auriez une explication ou une autre méthode?

Merci d'avance

Jean-Marc


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
jps
bonjour jean-marc
peut-être plus simplement

Application.ActivePrinter = "Olitec Fax sur LPT1:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
'on remet l'imprimante par défaut
Application.ActivePrinter = "EPSON EPL-5700 sur LPT1:"

et tu te sers de l'enregistreur de macros pour connaître le nom exact et le
port des tes imprimantes
jps

"Jean-Marc" a écrit dans le message de
news: 45eb484d$0$5074$
Bonsoir,
Je cherche à changer d'imprimante pour sortir un document, puis me
remettre sur l'imprimante d'origine


Imp_depart = Application.ActivePrinter
Application.ActivePrinter = "Nom de l'imprimante2"
.....
..... impression
.....
Application.ActivePrinter = Imp_depart

mais cela plante à l'éxécution

Auriez une explication ou une autre méthode?

Merci d'avance

Jean-Marc



Avatar
LSteph
Bonjour,
Pour résumer nos trois posts,

(dont je pensais que le premier affichant le nom d'imprimante et celui
modifié mettait cela assez en évidence, et donnait en même temps le
moyen: msgbox, de s'en assurer, je vois que ce ne doit pas être le cas
puisque deux autres contributeurs et pas des moindres, se réveillent
plusieurs heures après pour dire la même chose , sans le dire non plus,
il est vrai que l'un des deux au moins a des circonstances atténuantes ;o))

Mettre le nom complet de l'imprimante avec son port comme indiqué en
exemple
.ActivePrinter = "PDFCreator sur Ne00:"

Pour vérifier tes imprimantes Msgbox Active.printer

Cordialement.

lSteph



Bonsoir,
Je cherche à changer d'imprimante pour sortir un document, puis me
remettre sur l'imprimante d'origine


Imp_depart = Application.ActivePrinter
Application.ActivePrinter = "Nom de l'imprimante2"
.....
..... impression
.....
Application.ActivePrinter = Imp_depart

mais cela plante à l'éxécution

Auriez une explication ou une autre méthode?

Merci d'avance

Jean-Marc




Avatar
JLuc
*Bonjour LSteph*,

il est vrai que l'un des deux au moins a des circonstances atténuantes ;o)


On a tous des circonstances atténuantes, vu l'heure matinale des posts.
Laisse nous nous réveiller :')

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
Jean-Marc
Bonsoir Steph & J Luc

Il est encore tard
J'ai fait un autre essai en ajoutant, dans le nom des imprimantes :
"IMP_RESEAU sur NE00:" (le suffixe "sur NE00:")
et sur la locale le suffixe " sur LPT1:"
Et cela ne plante plus!

Pour celle réseau, NE00 est-elle une valeur fixe, ou bien crée
dynamiquement?

Boone nuit

Jean-marc


"LSteph" a écrit dans le message de news:

Bonsoir,

Avec 2000 je ne sais pas, mais chez moi voici un test qui
met un petit temps à s'executer mais fonctionne:

''''''
Sub testprinter()
Dim imp1 As String
With Application
imp1 = .ActivePrinter
.ActivePrinter = "PDFCreator sur Ne00:"

MsgBox "avant: " & imp1 & vbCrLf _
& "maintenant: " & .ActivePrinter

.ActivePrinter = imp1
End With
End Sub
''''''''

Cordialement.

lSteph

Bonsoir,
Je cherche à changer d'imprimante pour sortir un document, puis me
remettre sur l'imprimante d'origine


Imp_depart = Application.ActivePrinter
Application.ActivePrinter = "Nom de l'imprimante2"
.....
..... impression
.....
Application.ActivePrinter = Imp_depart

mais cela plante à l'éxécution

Auriez une explication ou une autre méthode?

Merci d'avance

Jean-Marc