Commande imprimer en VBA

Bonjour,

Où pourrais-je trouver le maximum de propriétés et fonctions en VBA au sujet de la commande "imprimer" ?

Je souhaiterais notamment savoir comment :

  • avoir plusieurs copies d'une feuille
  • imprimer la Xième page d'une feuille
  • selectionner la qualité
  • choisir couleur/N&B

Je souhaiterais aussi inserer une combo qui afficherait les imprimantes installées et choisir celle que je veux utiliser.

Merci d'avance.

Jérôme.

Salut Jerome et le forum

Un bon début utilise l'enregistreur de macro.

Mytå

Merci beaucoup Myta

Est-ce que tu saurais comment tester si une imprimante est celle par défaut ?

Le plus simple en fait serait que je trouve le code VBA de la boite "imprimer".

Je suis en train de réaliser une boite de dialoque "imprimer" personnalisée. J'ai inséré une combobox dans laquelle j'ai réussi à ajouter les différentes imprimantes installées. Je voudrais que quand je lance cette boîte l'imprimante par défaut soit automatiquement sélectionnée et que quand je lance l'impression, celle-ci se fasse sur l'imprimante sélectionnée dans la combobox. J'espère que je suis clair... pas sûr !

Salut Jerome et le forum

Jérôme27 a écrit :

Le plus simple en fait serait que je trouve le code VBA de la boite "imprimer".

Afficher boîte de dialogue - Imprimer

Application.Dialogs(xlDialogPrint).Show

Récupération imprimante par défaut et port selectionné.

Declare Function GetProfileStringA Lib "KERNEL32" ( _
ByVal lpAppName As String, ByVal lpKeyName As String, _
ByVal lpDefault As String, ByVal lpReturnedString As String, _
ByVal nSize As Integer) As Integer

Sub Default_Printer_Port()

Dim Result As String * 255
Dim Printer As String
Dim Port As String

Call GetProfileStringA("Windows", "Device", "", Result, 254)
Printer = Left(Result, InStr(Result, ",") - 1)
Port = Mid(Result, InStr(InStr(Result, ",") + 1, Result, ",") + 1)
MsgBox "The current default printer is " & Printer
MsgBox "The current default port is " & Port

End Sub

Mytå

Je vais paraitre ridicule... mais je ne sais pas comment inserer ce code pour le tester...

Salut Jerome

Un exemple dans la pièce jointe

Fichier exemple.

Mytå

Génial ! Merci beaucoup Myta, je vais essayer ça de suite !

Myta, je vais t'embeter une dernière fois si tu veux bien.

Je cherche maintenant la syntaxe qui me permettrait de lancer l'impression sur l'imprimante que je veux et dont je possède le nom.

Salut Jerome

Essaye avec ce code

ActiveSheet.Printout ActivePrinter:="Mon_Imprimante"

La syntaxe complète étant

expression.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName)

ActiveSheet.Printout ,,1,False,"Mon_Imprimante",False,False

Mytå

Je dis Bravo, un grand merci Myta. Problème résolu !

Rechercher des sujets similaires à "commande imprimer vba"