A voir également:
- Code vba pour impression
- Spouleur d'impression - Guide
- Le code ascii - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
12 réponses
j'ai trouve une commande plus simple pour recuperer le nom de l'imprimante par defaut
defaultprinter = Printer.DeviceName
Du coup mes lignes suivant ne passe pas, tu a raison pour le Network , mais ça ne passe pas avec le connection, il me dit qu'un composant l'ActiveX ne peut pas creer d'objet
defaultprinter = Printer.DeviceName
Du coup mes lignes suivant ne passe pas, tu a raison pour le Network , mais ça ne passe pas avec le connection, il me dit qu'un composant l'ActiveX ne peut pas creer d'objet
j'ai vais cela mais il imprime sur l'imprimante pas défault et moi je veux qu'il le fasse sur une imprimante virtuelle en faite je veux faire un code du style
Imprimante="imprimante 1"
Etat="Etat1"
Imprime Etat1 sur Imprimante1
Imprimante="imprimante 1"
Etat="Etat1"
Imprime Etat1 sur Imprimante1
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
30 juil. 2008 à 12:39
30 juil. 2008 à 12:39
Bonjour,
Mais ton imprimante virtuelle c'est quoi ?
A+
Mais ton imprimante virtuelle c'est quoi ?
A+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
30 juil. 2008 à 13:29
30 juil. 2008 à 13:29
Changer ton imprimante par défaut (param Win) par PDF Writer
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai trouvé un code mais ça ne marche toujours pas, il imprime sur l'imprimante réseau et non par PDF Writer, je comprend pas pourquoi
'Initialisationdes varibales
strPoste = "."
strNomEtat = "NB_REP"
StrImprimante = "PDF Writer"
'Memoriser l'imprimante par défault
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strPoste & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Default = true")
For Each objPrinter In colInstalledPrinters
defaultprinter = objPrinter.Name
Next
'Ouverture de l'etat en mode caché
DoCmd.OpenReport strNomEtat, acViewPreview, , , acHidden
'Modife de l'imprimante par defaut
Set wsn = CreateObject("WScript.Network")
wsn.SetDefaultPrinter "Microsoft Office Document Image Writer"
'impression de l'etat
DoCmd.OpenReport strNomEtat, acViewNormal, , , acHidden
'Reactive l'imprimante default d'origine
wsn.SetDefaultPrinter defaultprinter
' fermer L 'état
DoCmd.Close acReport, strNomEtat, acSaveNo
'Initialisationdes varibales
strPoste = "."
strNomEtat = "NB_REP"
StrImprimante = "PDF Writer"
'Memoriser l'imprimante par défault
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strPoste & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Default = true")
For Each objPrinter In colInstalledPrinters
defaultprinter = objPrinter.Name
Next
'Ouverture de l'etat en mode caché
DoCmd.OpenReport strNomEtat, acViewPreview, , , acHidden
'Modife de l'imprimante par defaut
Set wsn = CreateObject("WScript.Network")
wsn.SetDefaultPrinter "Microsoft Office Document Image Writer"
'impression de l'etat
DoCmd.OpenReport strNomEtat, acViewNormal, , , acHidden
'Reactive l'imprimante default d'origine
wsn.SetDefaultPrinter defaultprinter
' fermer L 'état
DoCmd.Close acReport, strNomEtat, acSaveNo
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
30 juil. 2008 à 13:44
30 juil. 2008 à 13:44
Ca m'étonne même qu'il y ai une réaction avec ta macro, le code que tu montre n'est pas du VBA
Mais il y a moyen par ce procédé mais avec des déclarations API et macro en language VBA
J'ai jamais vraiment chercher à faire ca mais je sais que c'est possible, si t'est pas trop pressé je peu voir...
EDIT:
Autant pour moi, j'ai pas fait attention que tu employait GetObject() et je ne connais pas les commandes pour l'objet Printer dans ce mode. J'ai penser que c'était avec des API.
Mais il y a moyen par ce procédé mais avec des déclarations API et macro en language VBA
J'ai jamais vraiment chercher à faire ca mais je sais que c'est possible, si t'est pas trop pressé je peu voir...
EDIT:
Autant pour moi, j'ai pas fait attention que tu employait GetObject() et je ne connais pas les commandes pour l'objet Printer dans ce mode. J'ai penser que c'était avec des API.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
30 juil. 2008 à 14:02
30 juil. 2008 à 14:02
Petite remarque cependant..
Set wsn = CreateObject("WScript.Network")
Me semble que tu l'envoi sur le réseau, essayé autre param que NetWork ?
par exemple..Set wsn = CreateObject("WScript.Connection")
Set wsn = CreateObject("WScript.Network")
Me semble que tu l'envoi sur le réseau, essayé autre param que NetWork ?
par exemple..Set wsn = CreateObject("WScript.Connection")
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
30 juil. 2008 à 14:14
30 juil. 2008 à 14:14
Tu a essayé en faisant l'inverse ?
Printer.DeviceName = \PrinterPDF Writer
Mais c'est peut-être en lecture seule.
A+
Printer.DeviceName = \PrinterPDF Writer
Mais c'est peut-être en lecture seule.
A+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
30 juil. 2008 à 14:23
30 juil. 2008 à 14:23
Bon, je recherche dans mes archices pour changer d'imprimante mais c'est pas pour du tout cuit, j'en ai des... (archives)
Te fatigue j'ai trouve Merci d'avoir pris du temps pour moi. J'ai trouve ce code en plus je l'ai compris donc c'est super, ça marche l'etat exporté n'est pas celui voulu mais je vais trouver, le code est bon c'est l essentiel. Je met ic le codei
NumIMP = 0
NombreImp = Application.Printers.Count
For Each ImpCherche In Application.Printers
If ImpCherche.DeviceName = "PDF Writer" Then
Set Application.Printer = Application.Printers(NumIMP)
Exit For
Else
NumIMP = NumIMP + 1
End If
Next ImpCherche
If NumIMP = NombreImp Then
msgbox "Vous n'avez pas d'imprimante PDF Writer!!", vbCritical, "Impossible"
Exit Sub
End If
DoCmd.OpenReport strNomEtat, acViewPreview
DoCmd.PrintOut acPrintAll, , , 1
DoCmd.Close acReport, strNomEtat
Set Application.Printer = Nothing
NumIMP = 0
NombreImp = Application.Printers.Count
For Each ImpCherche In Application.Printers
If ImpCherche.DeviceName = "PDF Writer" Then
Set Application.Printer = Application.Printers(NumIMP)
Exit For
Else
NumIMP = NumIMP + 1
End If
Next ImpCherche
If NumIMP = NombreImp Then
msgbox "Vous n'avez pas d'imprimante PDF Writer!!", vbCritical, "Impossible"
Exit Sub
End If
DoCmd.OpenReport strNomEtat, acViewPreview
DoCmd.PrintOut acPrintAll, , , 1
DoCmd.Close acReport, strNomEtat
Set Application.Printer = Nothing