Définir une imprimante particulière en VBA

Le
FRED
Bonjour,

Je cherche à créer une macro me permettant d'imprimer sur une machine bien
précise (chemin réseau du type "\poste1printer").
Peux-t-on définir cela en VBA ?

Merci de votre aide.

FRED
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
michdenis
Le #21181941
Bonjour,

Essaie ceci :

'-------------------------------------------
Sub Déterminer_Imprimante_Par_Defaut()

Dim MonImprimante As String

'Nom de ton imprimante tel que défini dans
'le panneau de configuration de Windows
MonImprimante = "HP DeskJet 930C/932C/935C"

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Name = '" & MonImprimante & "'")
For Each objPrinter In colInstalledPrinters
objPrinter.SetDefaultPrinter
Next
End Sub
'-------------------------------------------



"FRED"
Bonjour,

Je cherche à créer une macro me permettant d'imprimer sur une machine bien
précise (chemin réseau du type "\poste1printer").
Peux-t-on définir cela en VBA ?

Merci de votre aide.

FRED
michdenis
Le #21181931
Peut-être préfères-tu cela !

'---------------------------------
Sub Déterminer_Imprimante_Par_Defaut()
Application.Dialogs(wdDialogFilePrintSetup).Show
End Sub
'---------------------------------



"michdenis"
Bonjour,

Essaie ceci :

'-------------------------------------------
Sub Déterminer_Imprimante_Par_Defaut()

Dim MonImprimante As String

'Nom de ton imprimante tel que défini dans
'le panneau de configuration de Windows
MonImprimante = "HP DeskJet 930C/932C/935C"

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Name = '" & MonImprimante & "'")
For Each objPrinter In colInstalledPrinters
objPrinter.SetDefaultPrinter
Next
End Sub
'-------------------------------------------



"FRED"
Bonjour,

Je cherche à créer une macro me permettant d'imprimer sur une machine bien
précise (chemin réseau du type "\poste1printer").
Peux-t-on définir cela en VBA ?

Merci de votre aide.

FRED
michdenis
Le #21181921
Et une dernière :

'------------------------------
Sub Déterminer_Imprimante_Par_Defaut()
Dim MonImprimante As String
'Nom de ton imprimante tel que défini dans
'Le panneau de configuration de Windows
MonImprimante = "HP DeskJet 930C/932C/935C"
Application.ActivePrinter = MonImprimante
End Sub
'------------------------------


"michdenis"
Bonjour,

Essaie ceci :

'-------------------------------------------
Sub Déterminer_Imprimante_Par_Defaut()

Dim MonImprimante As String

'Nom de ton imprimante tel que défini dans
'le panneau de configuration de Windows
MonImprimante = "HP DeskJet 930C/932C/935C"

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Name = '" & MonImprimante & "'")
For Each objPrinter In colInstalledPrinters
objPrinter.SetDefaultPrinter
Next
End Sub
'-------------------------------------------



"FRED"
Bonjour,

Je cherche à créer une macro me permettant d'imprimer sur une machine bien
précise (chemin réseau du type "\poste1printer").
Peux-t-on définir cela en VBA ?

Merci de votre aide.

FRED
Geo
Le #21181911
Bonjour
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]
Bonjour,

Je cherche à créer une macro me permettant d'imprimer sur une machine bien précise
(chemin réseau du type "\poste1printer").
Peux-t-on définir cela en VBA ?



Oui, il faut affecter le nom de l'imprimante à ActivePrinter.
Pour avoir le nom exact, mettez la par défaut, et faites dans la
fenêtre d'exécution un
? Application.ActivePrinter

Ensuite cette macro imprime votre document et remet la situation en
l'état :
Sub Imprime()
Dim ImprCour As String
Dim Impr2 As String
ImprCour = Application.ActivePrinter
Impr2 = "Ici le nom de l'imprimante"
Application.ActivePrinter = Impr2
ActiveDocument.PrintOut
Application.ActivePrinter = ImprCour
End Sub

--
A+
FRED
Le #21182291
Bonjour à tous,

Génial, c'est exactement ce que je cherchais : simple et efficace !

Merci à tous.

Fred.

"Geo"
Bonjour
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ] Bonjour,

Je cherche à créer une macro me permettant d'imprimer sur une machine
bien précise (chemin réseau du type "\poste1printer").
Peux-t-on définir cela en VBA ?



Oui, il faut affecter le nom de l'imprimante à ActivePrinter.
Pour avoir le nom exact, mettez la par défaut, et faites dans la fenêtre
d'exécution un
? Application.ActivePrinter

Ensuite cette macro imprime votre document et remet la situation en l'état
:
Sub Imprime()
Dim ImprCour As String
Dim Impr2 As String
ImprCour = Application.ActivePrinter
Impr2 = "Ici le nom de l'imprimante"
Application.ActivePrinter = Impr2
ActiveDocument.PrintOut
Application.ActivePrinter = ImprCour
End Sub

--
A+




Publicité
Poster une réponse
Anonyme