Sélection automatique d'une autre imprimante

Bonjour,

J'utilise une imprimante que j'ai installé en deux configurations (J'ai donc physiquement qu'une seule imprimante, mais pour mon Windows j'en ai deux).

L'imprimante n°1 fonctionne normalement (prend des feuilles A4 dans le bac a papier 1)

L'imprimante n°2 est configurée pour prendre dans le bac Bypass (aussi appelé Avaleur) des feuilles au format A6.

J'ai un fichier Excel avec quelques macros qui me permettent d'éditer des fiches format A6 (donc imprimante n°2).

Est ce que c'est possible en VBA de venir pointer l'imprimante n°2 automatiquement ? tout en gardant comme imprimante par défaut pour tous mes autres fichiers Excel l'imprimante n°1

Voici le code que j'ai pour mon Edition de fiche. Ce code fonctionne parfaitement. Il m'enregistre ma fiche au format PDF et me l'imprime (via une sélection de cellules) . J'ai juste l'obligation de venir sélectionner une première fois la bonne imprimante.

C'est embêtant car tout au long de la journée je dois switcher plusieurs fois entre plusieurs fichiers Excel et souvent j'oublie de sélectionner la bonne imprimante ce qui gâche du papier, de l'encre, me fait perdre du temps et ca m'énerve.

Je pense que la solution serait dans ma macro EditionFiche de venir pointer sur l'imprimante n°2, lancer l'impression, et en fin de macro revenir pointer sur l'imprimante n°1 (de cette façon, quand je clique sur mon bouton Edition de fiche j'imprime systématiquement sur l'imprimante A6 (N°2) et dans tous les autres cas de figure, j'imprime sur mon imprimante normale).

Le problème... Je ne sais pas le faire.

Est ce que Qqn aurait la gentillesse de m'aider ?

Voila le code :

Sub EditionFiche()
'
' EditionFiche Macro

Sheets(1).Range("B8").Value = Sheets(1).Range("B8").Value + 1

Range("R1:AH27").Select
ChDir "C:\Users\john.doe\Desktop\Fiche Journalière"
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\john.doe\Desktop\Fiche Journalière\" & Range("R3") & "-" & Range("V3") & "-" & Range("F1") & "-" & Range("F2") & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Range("R1:AH27").Select
Selection.PrintOut Copies:=1, Collate:=True
End Sub

Et voila le nom de mes deux imprimantes :

Imprimante N°1 : RICOH MPC307

Imprimante N°2 : RICOH MPC307 BYPASS A6

Bonjour GeorgesThomas,

Une proposition, sachant qu'il faut que l'imprimante RICOH MPC307 soit par défaut avant l'impression :

Sub ImpressionByPass()
    Imprimante = Application.ActivePrinter 'Mémorise le choix de l'imprimante avant l'impression
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="RICOH MPC307 BYPASS A6", IgnorePrintAreas:=False
    Application.ActivePrinter = Imprimante 'Retour à l'imprimante choisie avant l'impression
End Sub

Bonjour Antoine,

Un grand merci pour votre réponse.

Ca Marche presque parfaitement.

J'ai intégré le code que vous m'avez donné de la sorte mais il y'a qqch que j'ai mal fait. Avant, ça imprimait la séléction R1:AH27 (qui correspond à la fiche format A6), mais maintenant ça m'imprime toute la feuille de calcul. (soit plusieurs feuilles en A6)

Je pense que mon bout de code de séléction de cellule (en rouge ) est mal placé dans mon code. Pouvez vous me dire ou est ce que je dois le renseigner ?

Sub EditionFiche()
'
' EditionFiche Macro

Sheets(1).Range("B8").Value = Sheets(1).Range("B8").Value + 1

Range("R1:AH27").Select
ChDir "C:\Users\john.doe\Desktop\Fiche Journalière"
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\john.doe\Desktop\Fiche Journalière\" & Range("R3") & "-" & Range("V3") & "-" & Range("F1") & "-" & Range("F2") & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Range("R1:AH27").Select

Imprimante = Application.ActivePrinter 'Mémorise le choix de l'imprimante avant l'impression

ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="RICOH MPC307 BYPASS A6", IgnorePrintAreas:=False

Application.ActivePrinter = Imprimante 'Retour à l'imprimante choisie avant l'impression

End Sub

Edit modo : merci de mettre le code entre balises SVP avec le bouton </>

En intégrant les quelques lignes à votre code, cela donnerait :

Sub EditionFiche()
'EditionFiche Macro
    Sheets(1).Range("B8").Value = Sheets(1).Range("B8").Value + 1
    Imprimante = Application.ActivePrinter 'Mémorise le choix de l'imprimante avant l'impression
    Range("R1:AH27").Select
    ChDir "C:\Users\john.doe\Desktop\Fiche Journalière"
    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\john.doe\Desktop\Fiche Journalière\" & Range("R3") & "-" & Range("V3") & "-" & Range("F1") & "-" & Range("F2") & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Selection.PrintOut Copies:=1, ActivePrinter:="RICOH MPC307 BYPASS A6", IgnorePrintAreas:=False
    Application.ActivePrinter = Imprimante 'Retour à l'imprimante choisie avant l'impression
End Sub

J'ai une erreur d'execution 1004 sur cette ligne en rouge :

Sub EditionFiche()

'EditionFiche Macro

Sheets(1).Range("B8").Value = Sheets(1).Range("B8").Value + 1

Imprimante = Application.ActivePrinter 'Mémorise le choix de l'imprimante avant l'impression

Range("R1:AH27").Select

ChDir "C:\Users\john.doe\Desktop\Fiche Journalière"

Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\john.doe\Desktop\Fiche Journalière\" & Range("R3") & "-" & Range("V3") & "-" & Range("F1") & "-" & Range("F2") & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Selection.PrintOut Copies:=1, ActivePrinter:="RICOH MPC307 BYPASS A6", IgnorePrintAreas:=False

Application.ActivePrinter = Imprimante 'Retour à l'imprimante choisie avant l'impression

End Sub

Edit modo : merci de mettre le code entre balises SVP avec le bouton </>

Je pense que la fonction "IgnorePrintAreas:=False" est de trop.

Sub EditionFiche()
'EditionFiche Macro
    Sheets(1).Range("B8").Value = Sheets(1).Range("B8").Value + 1
    Imprimante = Application.ActivePrinter 'Mémorise le choix de l'imprimante avant l'impression
    Range("R1:AH27").Select
    ChDir "C:\Users\john.doe\Desktop\Fiche Journalière"
    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\john.doe\Desktop\Fiche Journalière\" & Range("R3") & "-" & Range("V3") & "-" & Range("F1") & "-" & Range("F2") & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Selection.PrintOut Copies:=1, ActivePrinter:="RICOH MPC307 BYPASS A6"
    Application.ActivePrinter = Imprimante 'Retour à l'imprimante choisie avant l'impression
End Sub

Ca marche parfaitement !!! Un grand merci Antoine.

vous êtes au TOP.

Bonjour GeorgesThomas

La prochaine fois, merci de mettre le code entre balises SVP

Oups, pardon. Je n'y manquerai pas la prochaine fois.

Rechercher des sujets similaires à "selection automatique imprimante"