Imprimer Userform / Changement d'imprimante

Y compris Power BI, Power Query et toute autre question en lien avec Excel
v
valentinLF
Membre habitué
Membre habitué
Messages : 53
Inscrit le : 30 mai 2016
Version d'Excel : 2007

Message par valentinLF » 5 août 2016, 21:34

Bonjour à tous,

Après de nombreuses recherches et de nombreux sujets semblables à celui-ci, je n'ai malheureusement toujours pas trouvé solution à mon problème.

Je travaille sur un fichier excel qui possède un Userform prédéfini au format A4, et je souhaiterais l'imprimer en PDF, via l'imprimante virtuelle PDFCreator pour mon cas.

Cependant, je n'arrive pas à changer, par une macro, l'imprimante par défaut. Mon code actuel est celui-ci : (Tiré d'un autre forum)
Private Sub CommandImpression_Click()
Dim Imprimante As String
Imprimante = Application.ActivePrinter
Application.ActivePrinter = "PDFCreator sur Ne04:"
Userform.PrintForm
Application.ActivePrinter = Imprimante
End Sub
L'impression fonctionne mais le programme ne prend pas en compte la ligne indiquant que l'imprimante active est "PDFCreator" donc mon impression se réalise toujours sur l'imprimante par défaut.

Le seul moyen de faire fonctionner mon impression en PDF est de modifier au préalable l'imprimante dans le classeur XL - "Fichier" - "Imprimer" et ensuite dans l'éditeur VBA - "Fichier" - "Imprimer" et changer l'imprimante. Mais ce n'est pas du tout pratique sachant que plusieurs personnes utiliserons ce "Logiciel XL"

J'ai remarquer également qu'il était possible d'utiliser :
Application.Dialogs(xlDialogPrinterSetup).Show
Mais le problème reste encore et toujours le même :scritch:

Si quelqu'un aurait une solution, ou qui aurait eu le même problème ?

Je vous remercie d'avance !




:ordi3:
Avatar du membre
gelinotte
Membre dévoué
Membre dévoué
Messages : 600
Inscrit le : 29 juillet 2013
Version d'Excel : 2016

Message par gelinotte » 5 août 2016, 22:16

Bonjour,

Ton code mentionne : Application.ActivePrinter = "PDFCreator sur Ne04:"

Es-tu sûr que Ne04 est l'imprimante PDF ? ... Car, chaque imprimante à son port à elle.

Pour vérifier ... si ça n'a pas déjà été fait ...
Dans Excel, Fichier, Imprimer, sélectionne PDFCreator et retourne sur la feuille sans imprimer ... puis dans un Module exécute...
Sub testAddrImp()
MsgBox (Application.ActivePrinter)
End Sub
Le MsgBox va te mentionner le port de PDFCreator sur ta machine.

Le no du port Ne00 à Ne0x semble être déterminé par l'ordre dans lequel on a installé nos imprimantes sur la machine.


Gelinotte
Google est mon ami ...
Avatar du membre
gelinotte
Membre dévoué
Membre dévoué
Messages : 600
Inscrit le : 29 juillet 2013
Version d'Excel : 2016

Message par gelinotte » 5 août 2016, 23:19

Bonjour,

Oouuuppppsssss! Une petite coquille...

Ton code fonctionne si on veut imprimer une feuille ..... PrintOut.
Mais ne fonctionne pas sur un UserForm .... Userform.PrintForm ::o
PrintForm outrepasse tous les chemins et va directement sur l'imprimante par défaut de Windows.

The printer used by PrintForm is determined by the operating system's Control Panel settings.
Source : https://msdn.microsoft.com/en-us/librar ... 64778.aspx

Désolé


Gelinotte
Google est mon ami ...
v
valentinLF
Membre habitué
Membre habitué
Messages : 53
Inscrit le : 30 mai 2016
Version d'Excel : 2007

Message par valentinLF » 8 août 2016, 16:40

Bonjour Gelinotte et merci pour tes réponses !

En effet après plusieurs recherche j'ai également remarqué que cette fonction PrintForm passe directement par l'imprimante par défaut et ne prend pas du tout en compte le code précédent :cry:

Du coup, toujours bloqué sur cette histoire d'impression en PDF, j'espère quand même trouver une petite combine pour palier à ce problème.
Avatar du membre
gelinotte
Membre dévoué
Membre dévoué
Messages : 600
Inscrit le : 29 juillet 2013
Version d'Excel : 2016

Message par gelinotte » 8 août 2016, 17:13

Bonjour,

En attendant mieux, tu peux définir PdfCreator comme imprimante par défaut dans Windows. :wink:


Gelinotte
Google est mon ami ...
v
valentinLF
Membre habitué
Membre habitué
Messages : 53
Inscrit le : 30 mai 2016
Version d'Excel : 2007

Message par valentinLF » 8 août 2016, 17:21

Oui, effectivement c'est la solution la plus simple mais malheureusement ce logiciel va être utilisé par plusieurs personne sur différent poste donc c'est très contraignant comme solution :?

Après en dépannage c'est toujours bon à garder. Je vais encore creuser, voir si je ne trouve pas quelque chose.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message