Ouvrir propriétés de l'imprimante

Bonjour,

Je code une macro pour valider des paramètres d'impression particuliers.

J'ai donc réussi sans soucis à modifier les marges, l'en-tête et le format du papier, mais je dois changer le bac à papier...

Je me suis résolu au fait qu'il n'y a aucune solution en vba pour faire cela (c'est trop spécifique à l'iprimante), mais je voulais quand même simplifier la tâche à l'utilisateur: lorsqu'il clique sur son bouton, ses paramètres de base se configurent, et la page de propriétés s'affiche. (c'est ce que je veux faire).

Mon code est le suivant:

Sub param_impr()
'sélection de l'imprimante
Application.ActivePrinter = "\\ELBSMS116\ELBPBEA1 sur Ne06:"

Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = ""
    Application.PrintCommunication = False

    'En-tête
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = "&F"
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""

        'Marges étroites
        .LeftMargin = Application.InchesToPoints(0.25)
        .RightMargin = Application.InchesToPoints(0.25)
        .TopMargin = Application.InchesToPoints(0.75)
        .BottomMargin = Application.InchesToPoints(0.75)
        .HeaderMargin = Application.InchesToPoints(0.3)
        .FooterMargin = Application.InchesToPoints(0.3)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA3
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 0
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
    End With
    Application.PrintCommunication = True

    Dim Ws As Object
    Set Ws = VBA.CreateObject("WScript.Shell")

    Ws.SendKeys ("^p"), True
    ' "Clique sur le bouton propriétés de l'imprimate"

End Sub

Tout à la fin de mon code, le bouton dont je parle est le suivant:

ctrl p

J'arrive à envoyer un ctrl+p à l'aide d'un sendkeys(), mais je n'arrive pas à cliquer sur ce foutu bouton !

Merci d'avance,

Marc.

bonsoir,

et si vous définiez 2 printers, 1 pour chaque bac à papier et vous choisiez un des 2 ???

https://www.mrexcel.com/board/threads/macro-to-print-worksheets-from-different-printer-trays.132413/

Sub PRINT1()
Application.ScreenUpdating = False
Application.ActivePrinter = "Brother HL-5150D TOP TRAY on Ne01:"
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1
Application.ScreenUpdating = True
End Sub
Sub PRINT2()
Application.ScreenUpdating = False
Application.ActivePrinter = "Brother HL-5150D BOTTOM TRAY on Ne02:"
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
Application.ScreenUpdating = True
End Sub

Bonjour,

J'ai bien évidement trouvé cette solution dans mes recherches, mais le but de ma macro est que chaque collègue lambda puisse utiliser ma macro sans avoir à installer une deuxième instance d'imprimante avec le bon nom et tout ce qui va avec...

Merci,

Marc

Rechercher des sujets similaires à "ouvrir proprietes imprimante"