Standarddrucker für alle Excelmappen per VBA ändern
Hallo, liebes Forum!
Ich möchte generell den Standarddrucker für alle Excelmappen beim öffnen ändern.
Bekomme das irgendwie nicht hin, was mache ich da falsch.
Die Zuweisung bringt einen Fehler: Laufzeitfehler 1004:
Die Methode 'ActivePrinter' für das Objekt '_Global' ist fehlgeschlagen.
Bitte um Hilfe.
Sub Auto_Open()
'
' Auto_öffnen Makro
'
MsgBox Application.ActivePrinter
ActivePrinter = "Canon MF620C Series UFRII LT"
End Sub
Ich möchte generell den Standarddrucker für alle Excelmappen beim öffnen ändern.
Bekomme das irgendwie nicht hin, was mache ich da falsch.
Die Zuweisung bringt einen Fehler: Laufzeitfehler 1004:
Die Methode 'ActivePrinter' für das Objekt '_Global' ist fehlgeschlagen.
Bitte um Hilfe.
Sub Auto_Open()
'
' Auto_öffnen Makro
'
MsgBox Application.ActivePrinter
ActivePrinter = "Canon MF620C Series UFRII LT"
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 369267
Url: https://administrator.de/forum/standarddrucker-fuer-alle-excelmappen-per-vba-aendern-369267.html
Ausgedruckt am: 23.04.2025 um 19:04 Uhr
18 Kommentare
Neuester Kommentar

Der Druckername stimmt zu 99,9% nicht 100%ig, denn zum Druckernamen gehört hier noch der Port in folgender Art und Weise (Port ist bei natürlich anzupassen!!).
Beispiel:
Welcher Port das bei dir ist kannst du in der Registry nachlesen:
Außerdem ist der Standarddrucker per Default der den Windows selbst hat, das für die Anwendung zu setzen bringt dir also nur was wenn der Drucker für Excel abweichen soll.
Schnuffi
Beispiel:
"HP Laserjet 1320 auf Ne02:"
Welcher Port das bei dir ist kannst du in der Registry nachlesen:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices
Außerdem ist der Standarddrucker per Default der den Windows selbst hat, das für die Anwendung zu setzen bringt dir also nur was wenn der Drucker für Excel abweichen soll.
Schnuffi

Welchen Port du oben statt (Ne02) einsetzen musst steht hier:
Aber nur das was nach dem Komma kommt.
Ich setze das aber selbst immer über WMI kurzerhand als Standard und danach wieder zurück.
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices
Aber nur das was nach dem Komma kommt.
Ich setze das aber selbst immer über WMI kurzerhand als Standard und danach wieder zurück.

Da hat wohl einer seinen Kaffee übersprungen, oder das Nasenfahrrad verlegt 
Na ja.
Ich habe mir Excel VBA jetzt nicht extra angeschaut, aber ich kann mir absolut vorstellen, dass der meckert, wenn Du als aktiven Drucker denselben wie aktuell eingestellt setzt. Also keine Änderung vornimmst.
sDrucker = Application.ActivePrinter --> speichert aktuellen Drucker in sDrucker
MsgBox sDrucker
Application.ActivePrinter = sDrucker --> setzt den aktuellen Drucker sofort wieder auf sDrucker, ohne dass der zwischendurch geändert wurde. Du willst hier aber bestimmt auf cDrucker (C !) ändern.
Ich habe mir Excel VBA jetzt nicht extra angeschaut, aber ich kann mir absolut vorstellen, dass der meckert, wenn Du als aktiven Drucker denselben wie aktuell eingestellt setzt. Also keine Änderung vornimmst.
sDrucker = Application.ActivePrinter --> speichert aktuellen Drucker in sDrucker
MsgBox sDrucker
Application.ActivePrinter = sDrucker --> setzt den aktuellen Drucker sofort wieder auf sDrucker, ohne dass der zwischendurch geändert wurde. Du willst hier aber bestimmt auf cDrucker (C !) ändern.

Bau dir einfach ein Add-on *.xlam, fertig ist die Soße, AutoOpen ist sowas von altbacken.