Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mit Makro bestimmten Drucker ansteuern

Mit Makro bestimmten Drucker ansteuern
strodti
Hallo Ihr lieben Leut,
ich habe in meiner Exceldatei eine Schaltfläche, die mit folgendem Makro hinterlegt ist:

Sub drucken()
Sheets(Array("Tabelle1", "Tabelle3", "Tabelle7")).PrintOut Copies:=1, Collate:=True
End Sub

Beim Klick werden die entsprechenden Tabellen über den Standarddrucker ausgedruckt. Da wir über mehrere Drucker verfügen, würde ich gern mit einer weiteren Schaltfläche den Druck an einen anderen Drucker übergeben. Ist das möglich und wenn ja - wie?
Ach so, den Code habe ich aus dem Netz - also bitte VBA-Erklärungen nicht zu knapp halten ;-)
Gruß
strodti
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Mit Makro bestimmten Drucker ansteuern
25.03.2010 14:32:51
fcs
Hallo strodti,
mit folgenden Ergänzungen.
Gruß
Franz
Sub drucken_auf_P000A6515()
Dim sDruckerAktuell As String
'Aktuellen Drucker merken
sDruckerAktuell = Application.ActivePrinter
'gewünschten Drucker setzen (genaue Bezeichnung ermitteln durch Makro-Aufzeichnen des  _
Druckerwechsels
Application.ActivePrinter = "\\S123456\P0001234 auf Ne08:"
Sheets(Array("Tabelle1", "Tabelle3", "Tabelle7")).PrintOut Copies:=1, Collate:=True
'Drucker wieder auf gemerkten Drucker setzen
Application.ActivePrinter = sDruckerAktuell
End Sub

Anzeige
AW: Mit Makro bestimmten Drucker ansteuern
25.03.2010 14:52:24
strodti
Hallo Franz,
danke für die Antwort. Also, wenn ich alles richtig gemacht hätte, würde wahrscheinlich nicht die Meldung
"Index außerhalb des gültigen Bereichs"
erscheinen.
Mein Code sieht jetzt so aus:
Sub drucken_auf_P000A6515()
Dim sDruckerAktuell As String
'Aktuellen Drucker merken
sDruckerAktuell = Application.ActivePrinter
'gewünschten Drucker setzen (genaue Bezeichnung ermitteln durch Makro-Aufzeichnen des _
Druckerwechsels
Application.ActivePrinter = "OKI C5950 auf Ne01:"
Sheets(Array("Tabelle1", "Tabelle3", "Tabelle7")).PrintOut Copies:=1, Collate:=True
'Drucker wieder auf gemerkten Drucker setzen
Application.ActivePrinter = sDruckerAktuell
End Sub
Die erste Zeile Sub_drucken... habe ich so belassen, oder hat dass einen Einfluss?
Sorry- aber leider sind meine VBA-Erfahrungen erst am Keimen!
Gruß
Tobias
Anzeige
AW: Mit Makro bestimmten Drucker ansteuern
25.03.2010 15:04:05
strodti
Hallo Franz!!!!!!
Es funktioniert. Nicht so elegant wie Dein Code, aber immerhin.
Habe meinen code wie folgt ergänzt:
Sub drucken_farbe()
Application.ActivePrinter = "OKI C5950 auf Ne01:"
Sheets(Array("Deckblatt", "Objektdaten")).PrintOut Copies:=1, Collate:=True
End Sub
Der Tipp mit dem Makroaufzeichnen war super.
Vielen vielen Dank.
Sonnige Grüße
strodti
Anzeige
AW: Mit Makro bestimmten Drucker ansteuern
25.03.2010 15:18:42
fcs
Hallo strodti,
das Problem mit meinem Code-Beispiel war dann wohl, dass in deiner Datei nicht alle der im Array angegebenen Blattnamen vorhanden sind. Die nachfolgende Version sollte dann bei dir funktionieren.
So sparste halt ggf. ein wenig Toner beim Farbdrucker.
Gruß
Franz
Sub drucken_farbe()
Dim sDruckerAktuell As String
'Aktuellen Drucker merken
sDruckerAktuell = Application.ActivePrinter
Application.ActivePrinter = "OKI C5950 auf Ne01:"
Sheets(Array("Deckblatt", "Objektdaten")).PrintOut Copies:=1, Collate:=True
Application.ActivePrinter = sDruckerAktuell
End Sub

Anzeige
AW: Mit Makro bestimmten Drucker ansteuern
25.03.2010 15:27:52
strodti
Hi Franz,
Holzauge sei wachsam - natürlich, Du hast recht. Ich hätte die Blattnamen ändern müssen!!!!
Nochmals vielen Dank.
strodti
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Mit Makro bestimmten Drucker ansteuern


Schritt-für-Schritt-Anleitung

Um in Excel ein Makro zu erstellen, das einen bestimmten Drucker ansteuert, kannst Du die folgenden Schritte befolgen:

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

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsm) und wähle Einfügen > Modul.

  3. Kopiere den Code: Füge den folgenden Code in das Modul ein:

    Sub drucken_auf_P000A6515()
       Dim sDruckerAktuell As String
       'Aktuellen Drucker merken
       sDruckerAktuell = Application.ActivePrinter
       'gewünschten Drucker setzen
       Application.ActivePrinter = "\\S123456\P0001234 auf Ne08:"
       Sheets(Array("Tabelle1", "Tabelle3", "Tabelle7")).PrintOut Copies:=1, Collate:=True
       'Drucker wieder auf gemerkten Drucker setzen
       Application.ActivePrinter = sDruckerAktuell
    End Sub
  4. Passe den Druckernamen an: Ersetze den Druckernamen durch den Namen Deines gewünschten Druckers. Du kannst den genauen Namen ermitteln, indem Du den Druckerwechsel mit Excel aufzeichnest.

  5. Füge eine Schaltfläche hinzu: Gehe zurück zu Excel, füge eine Schaltfläche ein und verlinke sie mit dem Makro drucken_auf_P000A6515.

  6. Teste das Makro: Klicke auf die Schaltfläche, um den Druckvorgang zu starten.


Häufige Fehler und Lösungen

  • Fehlermeldung "Index außerhalb des gültigen Bereichs": Dieser Fehler tritt auf, wenn im Sheets(Array(...))-Befehl ein Blattname nicht existiert. Stelle sicher, dass alle angegebenen Blätter in Deiner Arbeitsmappe vorhanden sind.

  • Drucker nicht gefunden: Überprüfe, ob der Drucker richtig angeschlossen und im Netzwerk verfügbar ist. Der Druckername muss exakt mit dem übereinstimmen, der in Windows angezeigt wird.

  • Makro funktioniert nicht: Stelle sicher, dass die Makros in Deinen Excel-Einstellungen aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center und aktiviere die Makros.


Alternative Methoden

Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch über die Excel-Oberfläche einen Drucker auswählen. Hier sind zwei alternative Methoden:

  1. Druckereinstellungen ändern: Gehe zu Datei > Drucken und wähle den gewünschten Drucker aus der Dropdown-Liste aus.
  2. Standarddrucker festlegen: Du kannst den Standarddrucker über die Windows-Systemsteuerung ändern, sodass alle Druckjobs standardmäßig an diesen Drucker gesendet werden.

Praktische Beispiele

Hier einige nützliche Beispiele für das Drucken auf bestimmten Druckern:

  1. Drucken mit Farb- und Schwarzweiß-Drucker:

    Sub drucken_farbe()
       Application.ActivePrinter = "OKI C5950 auf Ne01:"
       Sheets(Array("Deckblatt", "Objektdaten")).PrintOut Copies:=1, Collate:=True
    End Sub
  2. Drucken auf einen anderen Drucker und Rücksetzen:

    Sub drucken_auf_anderem_drucker()
       Dim sDruckerAktuell As String
       sDruckerAktuell = Application.ActivePrinter
       Application.ActivePrinter = "Brother HL-2270DW auf Ne01:"
       Sheets(Array("Tabelle1")).PrintOut Copies:=1
       Application.ActivePrinter = sDruckerAktuell
    End Sub

Tipps für Profis

  • Verwende Makroaufzeichnung: Um den genauen Namen eines Druckers zu finden, nutze die Makroaufzeichnungsfunktion, während Du den Drucker wechselst. Das erleichtert die Programmierung erheblich.
  • Fehlerbehandlung einfügen: Integriere Fehlerbehandlungsroutinen in Deine VBA-Skripte, um unerwartete Probleme während des Druckvorgangs zu vermeiden.
  • Druckereinstellungen speichern: Wenn Du häufig zwischen verschiedenen Druckern wechselst, kannst Du ein Makro erstellen, das die Druckereinstellungen speichert und wiederherstellt.

FAQ: Häufige Fragen

1. Wie kann ich den Standarddrucker in Excel festlegen? Du kannst den Standarddrucker über die Windows-Systemsteuerung festlegen. Gehe zu Geräte und Drucker, klicke mit der rechten Maustaste auf den gewünschten Drucker und wähle Als Standarddrucker festlegen.

2. Kann ich mehrere Drucker in einem Makro ansteuern? Ja, Du kannst in einem Makro mehrere Drucker ansteuern, indem Du den Application.ActivePrinter-Befehl entsprechend oft anpasst und die gewünschten Blätter druckst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige