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:
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