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

Forumthread: Drucker per VBA bestimmen

Drucker per VBA bestimmen
Putenbrust
Hi,
Ich möchte ein Sheet per VBA ausdrücken. Aber nur über einen bestimmten Drucker
soll gedruckt werden. In dem Fall der PDF-Drucker.
Bisher hat dies dank Makrorekorder Wunderbar funktioniert.
Und dies so:
Application.ActivePrinter = "FreePDF XP Ne02:"
So konnte ich bisher problemlos den
Drucker vorbestimmen.
Jetzt haben wir Excel2010 bekommen und genau diese Zeile produziert im Makro einen Fehler. Auch über den Makrorekorder wird nichts angezeigt.
Was muss man denn beim neuen Excel eingeben oder geht das nicht mehr ?
Vielen Dank im Voraus. Gruß Thomas
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Drucker per VBA bestimmen
02.08.2012 03:09:50
fcs
Hallo Thomas,
es kann schon sein, dass sich nach umfangreicheren Neuinstallationen von Programmen die NE-Nr. der Drucker geändert hat.
Mit dem folgenden Makro kannst du dir die Bezeichnung des aktiven Druckers anzeigen lassen.
Also manuell den Drucker in Excel wechseln und dann das Makro starten.
Gruß
Franz
Sub AktivenDrucker_anzeigen()
MsgBox "Name-AktiverDrucker: " & Application.ActivePrinter
End Sub

Anzeige
AW: Drucker per VBA bestimmen
02.08.2012 23:34:38
Putenbrust
Danke Franz, aber daran liegt es nicht. Die Bezeichnung hat sich nicht geändert.
Es ist auch egal, welchen Drucker per VBA auswähle. Egal, ob diesen PDFoder jeden
Anderen im Netzwerk.
Mir scheint, als wenn Excel den Befehl zum vorbedtimmen des Druckers nicht kennt.
Wenn ich einfach ein Makro aufzeichne, fehlt der Teil, bei dem ich manuell den Drucker
Auf den PDF Drucker umstelle, komplett.
Vorher, bei Excel-XP hat der Rekorder jeden Schritt aufgezeichnet,
auch das manuelle Umstellen des Druckers. Siehe die Programmzeile in meinem ersten Text.
Trotzdem Danke, aber das Problem ist nicht gelöst.
Anzeige
AW: Drucker per VBA bestimmen
03.08.2012 10:07:02
fcs
Hallo Thomas,
leider hat Microsoft den in der 2007er Version extrem schwachen Makro-Recorder auch in der 2010er-Version noch nicht in allen Aktionen auf den Stand des 2003er-Recorders gebracht.
Ich kann nicht nachvollziehen, warum das Umschalten des Druckers bei dir nicht funktioniert.
Das nachfolgende Makro läuft bei mir reibungslos.
Gruß
Franz
'getestet unter Excel 2010, Windows XP - umschalten von Netzwerk-Drucker auf FreePDF-Drucker
Sub Drucken_PDF()
Dim strDruckerAktiv As String, strDruckerPDF As String
strDruckerAktiv = Application.ActivePrinter 'Drucker merken
strDruckerPDF = "FreePDF XP auf Ne01:"
Application.ActivePrinter = strDruckerPDF
ActiveSheet.PrintOut preview:=False
Application.ActivePrinter = strDruckerAktiv 'Drucker zurücksetzen
End Sub

Anzeige
AW: Drucker per VBA bestimmen
03.08.2012 23:04:12
Putenbrust
Hi Franz, jetzt gehts doch !
Der PDF Drucker ist tatsächlich nicht
mehr auf Ne01, sondern auf Ne03.
Vielen Dank für deine Hilfe
Gruß Thomas
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Drucker per VBA auswählen und festlegen in Excel


Schritt-für-Schritt-Anleitung

  1. Aktiven Drucker auslesen: Um den aktuell aktiven Drucker zu ermitteln, kannst du folgendes VBA-Makro verwenden:

    Sub AktivenDrucker_anzeigen()
       MsgBox "Name-AktiverDrucker: " & Application.ActivePrinter
    End Sub
  2. Drucker festlegen: Um den PDF-Drucker (z.B. FreePDF) auszuwählen, verwende dieses Makro:

    Sub Drucken_PDF()
       Dim strDruckerAktiv As String, strDruckerPDF As String
       strDruckerAktiv = Application.ActivePrinter 'Drucker merken
       strDruckerPDF = "FreePDF XP auf Ne01:" 'Anpassen, falls nötig
       Application.ActivePrinter = strDruckerPDF
       ActiveSheet.PrintOut preview:=False
       Application.ActivePrinter = strDruckerAktiv 'Drucker zurücksetzen
    End Sub
  3. Drucker anpassen: Stelle sicher, dass die Bezeichnung des PDF-Druckers korrekt ist. Gehe in Excel zu "Drucken", um die aktuelle Bezeichnung zu überprüfen.


Häufige Fehler und Lösungen

  • Fehler beim Auswählen des Druckers: Wenn du den Drucker nicht auswählen kannst, könnte das an einer geänderten Bezeichnung liegen. Nutze das oben genannte Makro zur Anzeige des aktuellen Druckers.

  • Makro-Recorder funktioniert nicht richtig: In Excel 2010 und späteren Versionen kann es sein, dass der Makro-Recorder nicht alle Aktionen aufzeichnet. Daher ist es ratsam, die VBA-Programmierung manuell durchzuführen.


Alternative Methoden

  • Drucker über die Benutzeroberfläche auswählen: Du kannst den Drucker auch manuell über die "Drucken"-Option in Excel auswählen, bevor du das Makro ausführst.

  • Standarddrucker festlegen: Du kannst in Windows den Standarddrucker festlegen, der dann automatisch in Excel verwendet wird, wenn kein spezifischer Drucker zugewiesen ist.


Praktische Beispiele

  • Drucken auf einen anderen Drucker: Wenn du einen anderen Drucker verwenden möchtest, ändere einfach die Zeile strDruckerPDF = "FreePDF XP auf Ne01:" zu dem Namen des gewünschten Druckers.

  • Drucken von mehreren Blättern: Um mehrere Blätter zu drucken, kannst du die PrintOut-Methode anpassen, indem du die gewünschten Seiten angibst.


Tipps für Profis

  • Fehlerprotokollierung: Füge Fehlerbehandlungsroutinen in deine Makros ein, um Probleme beim Drucken schneller zu identifizieren.

  • Druckerstatus überprüfen: Verwende VBA, um den Status des Druckers abzufragen, bevor du versuchst, ein Dokument zu drucken.

  • Drucken als PDF: Du kannst auch direkt auf einen PDF-Drucker drucken, um Dokumente im PDF-Format zu speichern.


FAQ: Häufige Fragen

1. Wie kann ich den Standarddrucker in Excel festlegen?
Du kannst den Standarddrucker in den Windows-Druckereinstellungen festlegen. Excel verwendet diesen Drucker automatisch, wenn kein anderer Drucker ausgewählt ist.

2. Warum funktioniert der Makro-Recorder nicht wie erwartet?
Der Makro-Recorder in Excel 2010 und späteren Versionen hat Einschränkungen und zeichnet nicht alle Aktionen auf, insbesondere bei Druckerwechseln. Es wird empfohlen, VBA manuell zu verwenden.

3. Was ist der Unterschied zwischen ActivePrinter und dem Standarddrucker?
ActivePrinter ist der Drucker, der aktuell für den Druckvorgang ausgewählt ist, während der Standarddrucker der Drucker ist, der ohne spezifische Auswahl verwendet wird.

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