kennt jemand einen Code mit dem man den Standarddrucker in der Systemsteuerung ändern kann um den Inhalt einer Userform mit Me.PrintForm auf dem Drucker seiner Wahl ausdrucken zu können?
Gruß
otto
Application.ActivePrinter = "Druckername"
Das Problem ist der Druckername. Dieser setzt sich zusammen aus dem eigentlichen Druckernamen und dem Druckeranschluss am jeweiligen PC. Und hier liegt der Knackpunkt. Die Anschlüsse sind an jedem PC anders verteilt, je nach der Reihenfolge der Einrichtung der Drucker auf dem PC. Um einen Drucker als Standarddrucker in Excel per Makro festzulegen, kannst Du die folgende Schritt-für-Schritt-Anleitung nutzen:
Öffne den Visual Basic-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)" und wähle Einfügen > Modul.
Füge den folgenden Code ein:
Sub StandardDruckerAendern()
Dim WshNetwork As Object
Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter "Druckername" ' Ersetze "Druckername" durch den gewünschten Druckernamen
End Sub
Ändere den Druckernamen: Ersetze "Druckername" mit dem Namen des Druckers, den Du als Standarddrucker festlegen möchtest.
Führe das Makro aus: Schließe den Editor und drücke ALT + F8, wähle StandardDruckerAendern und klicke auf Ausführen.
Diese Methode funktioniert in Excel, um einen Drucker als Standarddrucker festzulegen. Achte darauf, dass der Druckername exakt eingegeben wird.
Fehler 1: Druckername wird nicht erkannt
Stelle sicher, dass der Druckername exakt eingegeben wurde. Du kannst die Druckernamen in Excel herausfinden, indem Du ein Makro aufzeichnest und die Drucker im Druckdialog durchgehst.
Fehler 2: Standarddrucker ändert sich nicht
Wenn das Häkchen in den Systemeinstellungen nicht aktualisiert wird, könnte es sein, dass die Benutzerrechte eingeschränkt sind. Stelle sicher, dass Du über Administratorrechte verfügst.
Eine alternative Methode zum Festlegen des Standarddruckers wäre die Verwendung von Windows-Skripting. Hier ist ein Beispiel:
Sub StandardDruckerSetzen()
Dim objShell As Object
Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /c rundll32 printui.dll,PrintUIEntry /y /n ""Druckername"""
End Sub
Ersetze auch hier "Druckername" mit dem tatsächlichen Namen des Druckers. Diese Methode funktioniert ebenfalls, um den Drucker in den Standardeinstellungen zu ändern.
Wenn Du den Drucker mit dem Namen "Drucker Otto" als Standarddrucker festlegen möchtest, sieht der Code so aus:
Sub StandardDruckerOtto()
Dim WshNetwork As Object
Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter "Drucker Otto"
End Sub
Führe dieses Makro aus, um "Drucker Otto" als Standarddrucker festzulegen.
1. Wie kann ich einen Drucker als Standarddrucker einstellen?
Du kannst dies in Excel mit einem VBA-Makro tun, wie im Tutorial beschrieben. Verwende die SetDefaultPrinter-Methode.
2. Was ist, wenn ich mehrere Drucker habe?
Du kannst für jeden Drucker ein separates Makro erstellen oder den Druckernamen dynamisch festlegen, basierend auf Benutzerwahl oder Eingabe.