[Macro] (xlDialogPrinterSetup) pour une série d'impression

bidoubidou

XLDnaute Nouveau
Bonjour à tous,

Je cherche à coder une macro afin de lancer une série d'impression automatiquement.

La macro est lancée à partir d'un classeur Excel "tableau principal.xls", elle ouvre successivement d'autres classeurs ("tableau2.xls", "tableau3.xls" ...), et affiche l'aperçu avant impression de certaines feuilles contenu dans ces classeurs.

Il suffit alors à l'utilisateur de cliquer sur "Imprimer" pour lancer l'impression de ce qu'il voit, et ensuite la macro passe automatiquement à la feuille suivant (ou au classeur suivant).

J'aimerai que l'utilisateur n'est qu'une seule fois besoin de configurer l'impression (particulièrement le choix de l'imprimante et de l'impression couleur ou N&B ?).
Tout au début de la marco, j'ai donc mis : Application.Dialogs(xlDialogPrinterSetup).Show

Une fenêtre de dialogue Excel s'ouvre bien, et je peux sélectionner l'imprimante, et configurer l'impression. Mais alors que la sélection de l'imprimante est bien prise en compte, le choix couleur ou N&B n'est pas respecté. L'impression se fait selon le réglage par défaut de l'imprimante, peut importe mes choix de configuration d'impression.

Une idée d'où cela peut venir ?
 
C

Compte Supprimé 979

Guest
Re : [Macro] (xlDialogPrinterSetup) pour une série d'impression

Salut Bidoubidou et bienvenue sur ce forum ;)

Malheureusement, Excel gère ces impressions pour chaque fichier

Donc à chaque ouverture d'un nouveau fichier les paramètres sont modifiés selon ce qui avait été enregistré préalablement.

A+
 

bidoubidou

XLDnaute Nouveau
Re : [Macro] (xlDialogPrinterSetup) pour une série d'impression

Bonjour BrunoM45 et merci pour ta réponse.

Donc à chaque ouverture d'un nouveau fichier les paramètres sont modifiés selon ce qui avait été enregistré préalablement.

Tu veux dire que les paramètres sont donc modifiés selon les paramètres par défaut de l'imprimante ? (en l'occurrence impression en N&B)

Humm, n'y aurait-il pas une astuce dans la fonction impression de Excel Worksheet.PrintOut pour spécifier une configuration d'impression ? J'ai vu que l'on peut configurer les pages à imprimer, le nombre de copies, l'imprimante à utiliser ... mais pas d'arguments pour le choix couleur/N&B. J'ai zappé quelque chose ou bien c'est effectivement impossible à faire ?
 

bidoubidou

XLDnaute Nouveau
Re : [Macro] (xlDialogPrinterSetup) pour une série d'impression

J'avance petit à petit :p

J'ai tenté une autre technique. Ayant PDFCreator d'installé, ma macro imprime les différents documents en PDF, et les stock dans un dossier spécifique.

J'utilise ensuite la libraire shell32.dll pour interagir avec l'exporateur windows depuis la marco Excel. Je fait une boucle sur tous les fichiers *.pdf contenu dans le dossier, et je lance une impression pour chaque.

Code:
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Sub imprime_tous_pdf_repertoire()

    Dim Fichier As String
    Dim Chemin As String
    
    Chemin = "C:\temp\"
    Fichier = Dir(Chemin & "*.pdf")
    ' MsgBox Fichier
    Do While Fichier <> ""
    MsgBox Fichier
    ShellExecute 0, "print", Fichier, vbNullString, Chemin, 0&
    Fichier = Dir()
    Loop

End Sub

Le problème restant est qu'il faudrait pouvoir configurer cette impression (et le choix de l'imprimante). Je ne connais pas vraiment les attributs/arguments/fonctions utilisables avec shell32.dll.
Vous avez des idées ?
 
Dernière édition:

Discussions similaires