Imprimer Userform / Changement d'imprimante

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

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

Je vous remercie d'avance !

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

Bonjour,

Oouuuppppsssss! Une petite coquille...

Ton code fonctionne si on veut imprimer une feuille ..... PrintOut.

Mais ne fonctionne pas sur un UserForm .... Userform.PrintForm

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/library/office/gg264778.aspx

Désolé

Gelinotte

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

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.

Bonjour,

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

Gelinotte

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.

Rechercher des sujets similaires à "imprimer userform changement imprimante"