Innerhalb eines Makros eine Druckerauswahl ermöglichen?
Hallo, ich habe in einer Exceltabelle ein Makro eingebaut, welches mir einen bestimmten variablen Druckbereich aus einem anderen Tabellenblatt druckt. Nun möchte ich das Ganze so verändern, dass beim Durchführen des Makros das Fenster Druckerauswahl aufspringt, ich manuell des Drucker auswählen kann und anschließend das Makro weiter durchgeführt wird. Momentan ist mein VB-Befehl zum Drucken: "ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True" Wie muss ich den verändern??? Vielen vielen Dank für Eure Hilfe!
2 Antworten
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