Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Standard-Drucker per Makro ändern

Forumthread: Standard-Drucker per Makro ändern

Standard-Drucker per Makro ändern
15.01.2007 13:25:20
otto
Hi,
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
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Standard-Drucker per Makro ändern
15.01.2007 18:24:35
IngGi
Hallo Otto,
wenn das nur von deinem PC aus funktionieren soll, wird's kompliziert. Wenn das von mehreren PCs in einem Netzwerk aus funktionieren soll, möchte ich nicht in deiner Haut stecken :-o.
Grundsätzlich gibt es dafür die Anweisung
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 die korrekten Namen der zur Verfügung stehenden Drucker an deinem PC herauszufinden, zeichnest du am Besten ein Makro auf. Während der Aufzeichnung gehst du über das Menü Datei-Drucken. Im Druckerfenster wählst du dann nacheinander alle zur Verfügung stehenden Drucker aus. Du brauchst dabei nichts auszudrucken. Die Druckernamen kannst du dann dem aufgezeichneten Makro entnehmen. Aber wie gesagt, das gilt dann eben nur für deinen PC.
Gruß Ingolf
Anzeige
AW: Standard-Drucker per Makro ändern
16.01.2007 12:08:21
otto
Hi,
danke habe ich auch schon probiert, geht leider nicht. Das Häkchen für den Standarddrucker in der Systemsteuerung ändert sich dabei nicht.
otto
AW: Standard-Drucker per Makro ändern
16.01.2007 21:51:24
Anton
Hi Otto,
Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter "Druckername"
MfG Anton
;
Anzeige

Infobox / Tutorial

Standarddrucker per Makro ändern in Excel


Schritt-für-Schritt-Anleitung

Um einen Drucker als Standarddrucker in Excel per Makro festzulegen, kannst Du die folgende Schritt-für-Schritt-Anleitung nutzen:

  1. Öffne den Visual Basic-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)" und wähle Einfügen > Modul.

  3. 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
  4. Ändere den Druckernamen: Ersetze "Druckername" mit dem Namen des Druckers, den Du als Standarddrucker festlegen möchtest.

  5. 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.


Häufige Fehler und Lösungen

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.


Alternative Methoden

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.


Praktische Beispiele

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.


Tipps für Profis

  • Druckername überprüfen: Um sicherzustellen, dass Du den richtigen Druckernamen verwendest, zeichne ein Makro auf und notiere die Namen der Drucker während der Aufzeichnung.
  • Einheitlichkeit in Netzwerken: Wenn Du in einem Netzwerk arbeitest, kann es sinnvoll sein, den Drucker über Gruppenrichtlinien zu verwalten.
  • Sichere die Makros: Speichere Deine Arbeitsmappe als .xlsm, um die Makros zu erhalten.

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige