Imprimer Userform

  • Initiateur de la discussion Micc
  • Date de début
M

Micc

Guest
Bonjour à tous

Dans le cadre d’une application j’aimerais imprimer des fiches (format userform)
Jusque la pas de problème avec la méthode « userform.printform » , les choses se gâtent si dans le code je veux changer d’imprimante.
Bien sur je peux choisir auparavant l’imprimante par défaut, mais j’aimerais si possible faire quelque chose d’automatique pour ça j’aimerais savoir si c’est possible de changer d’imprimante lorsqu’on utilise printform.

Merci de votre aide

A+
 
M

Micc

Guest
Salut Arnaud

Merci pour l'aide, malheureusement dès que tu utilise Userform.printform
ça ne tien pas compte de la fonction Application.ActivePrinter, puisque ça imprime directement sur l'imprimante par défaut de Windows.
L’idéal serait de pouvoir depuis VBA changer l'imprimante par défaut avant de lancer le code d'impression, mais comment faire pour changer des paramètres Windos depuis VBA ?????????

A+
 
A

Arnaud

Guest
vi effectvement.

pour changer l'imprimante par défaut, c surement en changeant une valeur de la base de registre mais j'en sai pas plus.

regarde la ça pe peut être t'aider.
http://www.developpez.net/forums/viewtopic.php?t=23980&highlight=&sid=550c52d3003e9b7c358f143c9f4f436f
 
M

michel

Guest
Re: Imprimer Userform changement imprimante par defaut

bonjour Micc , bonjour Arnaud

ci joint une macro à tester en complément de la solution donnée par Arnaud


Sub Imprimer()
Dim Variable_Imp As String
On Error GoTo ErrorHandler

Variable_Imp = Application.ActivePrinter 'mise en memoire de l'imprimante par defaut
Application.ActivePrinter = "hp deskjet 930c series sur LPT1:" 'l'imprimante à utiliser
UserForm1.PrintForm 'imprimer
Application.ActivePrinter = Variable_Imp ' reinitialiser l'imprimante pas défaut

ErrorHandler:
Select Case Err.Number
Case 1004
MsgBox "Imprimante non disponible.", vbInformation
Application.ActivePrinter = Variable_Imp
Case Else
Application.ActivePrinter = Variable_Imp
End Select

End Sub


je n'ai qu'une imprimante sur mon poste , je n'ai donc pas pu faire directement l'essai ( la procedure est inspirée d'une macro de gestion de fax ) . j'espere que cela fonctionnera ...
tu dois bien entendu remplacer "hp deskjet 930c series sur LPT1:" par le nom de l'imprimante que tu souhaites utiliser pour l'impression : tu peux le retrouver facilement en faisant un test manuel de selection d'imprimante avec l'enregistreur de macro


bonne soiree
michel
 
M

Micc

Guest
Merci Michel

Malheureusement ça ne marche pas puisqu’on dirait que le printform prend en considération seulement l'imprimante par défaut de Windows, on a beau changer avant le code avec Application.ActivePrinter il n'en tient pas compte du tout même si dans la boîte de dialogue de l'impression il change effectivement l'imprimante.

A+
 

Statistiques des forums

Discussions
312 471
Messages
2 088 703
Membres
103 927
dernier inscrit
Mkeal