mein erster Beitrag, ich hoffe ich finde die richtigen Worte :-)
Mein Problem:
Ich habe ein Userform angelegt, welche auch gut funktioniert.
Habe auch einen CommandButton1 zum Ausdrucken der Userform Ansicht mit der PrintForm-Methode, welchen den durch die Systemsteuerung des Betriebssystems vorgegebenen Drucker nutzt.
Private Sub CommandButton1_Click()
Me.PrintForm
End Sub
Mein Problem ist folgendes (ich denke dies ist nicht neu):
Ich möchte gerne mit einem weiterem Commandbutton (2) einen Drucker aussuchen und danach mit der PrintFormMethode (entweder über den gleiche Button 2 oder den Button 1) die Userform Ansicht ausdrucken (alles Netzwerkdrucker oder PDF Drucker), um diese beispielsweise als PDF abspeichern zu können. Wolle hier nicht die Screenshot-Methode anwenden.
Ich habe vieles ausprobiert, als einziges hat bei mir bisher folgendes funktioniert:
Private Sub CommandButton2_Click()
Dim strPrinterName As String
strPrinterName = Application.ActivePrinter
Application.Dialogs(xlDialogPrinterSetup).Show
' Hier den PrintOut befehl
ActiveSheet.PrintOut
Application.ActivePrinter = strPrinterName
End Sub
Hier wird nach betätigen des Buttons2 die Druckerliste angezeigt, ich wähle einen nicht Standarddrucker aus und gehe dann auf Drucken. Hier wird dann das Excelblatt (Activesheet) als Printout ausgedruckt. Oder anstatt drucken betätige ich Abbrechen.
Bei beiden Anwendung (drucken/abbrechen) bleibt irgendwie der ausgewählte Drucker gespeichert und ich kann dann mit Button 1 mit dem zuvor ausgewählten Drucker in der Printform die Userform Ansicht (und nicht das Excelsheet) ausdrucken.
Da auch andere damit arbeiten sollen, ist dies leider nicht sehr anwenderfreundlich und auch schwierig zu erläutern (siehe oben).
Gibt es hierzu evtl. eine andere Möglichkeit? Z.B. dass bei Auswahl des Druckers kein Druck ausgelöst, sondern nur der Drucker umgestellt wird?! Erst mit Button 1 der Druck ausgelöst werden kann. Oder gibt es noch etwas anderes.
Danke Euch.
Folgende Beiträge habe ich hierzu gefunden:
https://www.herber.de/forum/archiv/1720to1724/1722345_Userform_Fenster_drucken.html
https://www.herber.de/forum/archiv/680to684/680384_Druckerauswahl_anzeigen.html
In anderen Foren (ich hoffe die darf ich hier nennen):
https://www.online-excel.de/excel/singsel_vba.php?f=126
Unter: https://www.using-excel.de/excelvba.html# war ein Beitrag unter Userform als pdf-drucken v2.
Dies funktioniert leider auch nicht:
Private Sub CommandButton2_Click()
Dim ausw As Variant
Dim newPrinter As String
strOldPrinter = Application.activePrinter
strOldPrinter = Mid(strOldPrinter, 1, InStr(1, strOldPrinter, " auf") - 1)
ausw = Application.Dialogs(xlDialogPrinterSetup).Show
ausw = Application.activePrinter
Me.PrintForm
Unload MeinFormular
CreateObject("WScript.Network").setdefaultprinter strOldPrinter
End Sub