Changer d'imprimante dans VBA (Excel 2000)

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #4229031
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




JLuc
Le #4229001
*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

jps
Le #4228971
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" 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



LSteph
Le #4228961
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




JLuc
Le #4228431
*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

Jean-Marc
Le #4356711
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"
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




Publicité
Poster une réponse
Anonyme