Innerhalb eines Makros eine Druckerauswahl ermöglichen?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
Sub Druckerauswahl_und_Ausdruck()
    Application.Dialogs(xlDialogPrinterSetup).Show
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub

Es wird ein kleiner Setup-Dialog gezeigt, in dem du auch den aktiven Drucker auswählen kannst. Es handelt sich aber nicht um den Windows-Druckmanager. Den kannst du meines Wissens nur über die API-Schnittstelle ansteuern, was recht aufwändig ist.

Habe über den Aufzeichner mal den Druckbefehl mit Druckerwechsel während des Makros vorgenommen. Der Code sieht dann so aus

Application.ActivePrinter = "PDFCreator auf Ne00:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= "PDFCreator auf Ne00:", Collate:=True

Wenn ich einen anderen Drucker gewählt habe stand entsprechend nach ActivePrinter der andere Drucker.

Eine Möglichkeit wäre, dass du vor dem Drucken ein Fenster (Inbox) ausgibst, "Wählen Sie einen Drucker aus: 1= pdf 2= Drucker a 3= Drucker b" Der entsprechende Wert wird dann in die Variable "Auswahl" geschrieben

Anschließend baust du eine wenn Abfrage vor den Druckauftrag ein. Also z.B. wenn Auswahl=1 Dann Application.ActivePrinter = "PDFCreator auf Ne00:" ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= "PDFCreator auf Ne00:", Collate:=True

wenn Auswahl=2 dann Application.ActivePrinter = "PDFCreator auf Ne00:" ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= "Drucker2:", Collate:=True