Sur mon fichier facture, j'ai fabriqué des boutons pour aider l'utilisateur. Le premier bouton imprime la facture sur tel imprimante, un autre imprime sur une autre imprimante, et un dernier imprime la facture vers Adobe PDF (pour la création d'un PDF donc).
Le fichier facture se situe sur un serveur, et chaque ordinateur de la société à accès à ce fichier pour pouvoir facturer de son poste.
Les 3 imprimantes sont installés sur chaque ordinateur, mais l'ordre ne doit apparement pas etre le meme partout car l'ordinateur avec lequel j'ai fabriqué le fichier fonctionne très bien, mais pas pour les autres postes.
Mon vba est très simple, j'utilise Ne0X pour sélectionner l'imprimante. En voilà un pour l'exemple:
Code:
Sub Macro_ORIGINAL_PDF()
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, ActivePrinter:= _
"Adobe PDF sur Ne03:", Collate _
:=True
End Sub
Chaque ordinateur possède sa propre liste d'imprimantes, par conséquent mon problème parait plus que logique.
Existe t'il une solution pour, soit que tout les postes utilisent le meme Ne0X pour chaque imprimante, soit de passer par une alternative pour le choix d'imprimante via VBA.
j'ai eu le même problème de références différentes sur les autres postes, après quelques recherche, j'utilise ça:
Code:
Sub Impression_vers_Imprimante()
Dim x As Byte
Dim ImpStd As String
'===Valider le port de l'imprimante
For x = 0 To 9
On Error Resume Next
ImpStd = "nom_de_l_imprimante sur Ne0" & x & ":"
Application.ActivePrinter = ImpStd
If ActivePrinter = ImpStd Then Exit For
Next x
'===Lancer l'impression de la page courante
ActiveWindow.SelectedSheets.PrintOut _
Copies:=1, _
ActivePrinter:=Application.ActivePrinter, _
Collate:=True
End Sub
en fait, ça teste les différentes sorties et voit si elles existent, une fois trouvée, elle sort de la boucle
chez moi ça fonctionne
à vérifier quand même avec l'enregistreur de macro sur chaque poste
à adapter aux différentes imprimantes (par exemple, pour les .pdf, je ne peux utiliser cette boucle car l'imprimante virtuelle n'est pas sur Ne..)