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

Forumthread: Doppelseitig drucken, normal und in VBA

Doppelseitig drucken, normal und in VBA
06.06.2004 10:44:06
Oswald
Hallo,
könnt Ihr mir wieder mal helfen?
Ich müsste aus Excel doppelseitig drucken aus zwei Tabellenblättern. Wenn ich diese mit Shift markiere und dann die Option "Beidseitig drucken" in den Eigenschaften des Druckers anwähle hat es zwei mal geklappt dann aber nicht mehr. Mir ist aber nicht klar warum?
Außerdem hätte ich da noch ein Makro wo es auch nicht geht. Vielleicht kann mir da ja auch noch jemand helfen.
Hier ist es:
Public &ltpre&gt
Sub Doppelseitig()
Dim r2 As Integer
Sheets(Array("Vorderseite", "Rückseite 1")).Select
Application.Dialogs(xlDialogPrinterSetup).Show
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'Abfrage ob Rückseite2 beschrieben
If Not Worksheets("Rückseite 2").Cells(3, 2).Value &gt "" Then GoTo ende
'Rückseite2 drucken
r2 = MsgBox("Soll die Rückseite 2 gedruckt werden?", vbYesNo, "Drucken der Abrechnung")
If r2 = 6 Then ActiveWorkbook.Worksheets("Rückseite 2").PrintOut
ende:
End Sub&lt/pre&gt
Hoffe wieder mal auf eure Hilfe, im vorraus vielen Dank.
Gruß
Oswald
Anzeige
AW: Doppelseitig drucken, normal und in VBA
Ramses
Hallo
auf die spezifischen Druckereinstellungen kannst du nicht mit VBA zugreifen.
Den einzigen Workaround:
Arbeite mit SendKeys und mach so die Druckereinstellungen,... ist aber sehr unsicher.
Die zweite Variante
Richte dir einen zweiten Drucker mit diesen Einstellungen ein und spricht diesen Drucker dann an.
Gruss Rainer
Anzeige
AW: Doppelseitig drucken, normal und in VBA
06.06.2004 12:12:58
Oswald
Hallo Rainer,
zuerst mal Danke für die Antwort.
Hab ich dich da richtig verstanden.
Selbst wenn ich mit
Application.Dialogs(xlDialogPrinterSetup).Show
das Druckerauswahlfenster aufrufe und hier von Hand dann die Option auswähle geht es nicht? Es geht also dann gar nicht?
Klapp zumindest bei mir nicht.
Nochmal danke an dich,
Gruß
Oswald
Anzeige
AW: Doppelseitig drucken, normal und in VBA
Ramses
Hallo
zeig mal den Code den du bisher hast.
Vielleicht finden wir ja was.
Gruss Rainer
AW: Doppelseitig drucken, normal und in VBA
06.06.2004 15:00:20
Oswald
Hi,
steht schon im ersten, aber hier nochmal:
Public

Sub Doppelseitig()
Dim r2 As Integer
Sheets(Array("Vorderseite", "Rückseite 1")).Select
Application.Dialogs(xlDialogPrinterSetup).Show
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'Abfrage ob Rückseite2 beschrieben
If Not Worksheets("Rückseite 2").Cells(3, 2).Value > "" Then GoTo ende
'Rückseite2 drucken
r2 = MsgBox("Soll die Rückseite 2 gedruckt werden?", vbYesNo, "Drucken der Abrechnung")
If r2 = 6 Then ActiveWorkbook.Worksheets("Rückseite 2").PrintOut
ende:
End Sub

Hoffe der Fachmann weis mehr.
Gruß
Oswald
Anzeige
AW: Doppelseitig drucken, normal und in VBA
Ramses
Hallo
so geht das nicht ;-)
Zwei verschiedene Tabellen können nicht auf eine Seite gedruckt werden. Duplexdruck geht nur innerhalb der gleichen Tabelle.
Ansonsten mal so:

Sub Doppelseitig()
Dim Qe As Integer
'Das ist unnötig
'Sheets(Array("Vorderseite", "Rückseite 1")).Select
Qe = MsgBox("Soll die Rückseite 2 gedruckt werden?", vbYesNo, "Drucken der Abrechnung")
If Qe = vbyes then
'Achtung: Der Druckername muss so geschrieben sein, wie er
'im Druckerdialog
Worksheets("Vorderseite").PrintOut
MsgBox "Seite umdrehen und wieder in den Drucker einlegen"
Worksheets("Rückseite 2").PrintOut
else
Worksheets("Vorderseite").PrintOut
End If
End Sub

Probiers mal aus.
Gruss Rainer
Anzeige
AW: Doppelseitig drucken, normal und in VBA
06.06.2004 18:08:07
Oswald
Hallo,
ist ganz in Ordnung so.
Die Sache mit umdrehen und neu einlegen wollte ich halt umgehen.
Da wir in der Firma einen Drucker haben der beidseitig drucken kann wollt ich gerne die "Vorderseite" und die "Rückseite" gerne beidseitig drucken.
Hast du vielleicht eine Ahnung ob es "normal" geht?
Gruß
Oswald
Anzeige
AW: Doppelseitig drucken, normal und in VBA
Ramses
Hallo
Hab ich doch schon gesagt :-)
Solange die Daten auf unterschiedlichen Tabellen sind, geht das nicht !!
Wenn, dann kopiere die Rückseite auf deine erste Tabelle und hänge sie "unter die Vorderseite" an.
Dann kannst du den Duplexdruck so machen

Sub Doppelseitig()
Dim Qe As Integer
Qe = MsgBox("Soll die Rückseite 2 gedruckt werden?", vbYesNo, "Drucken der Abrechnung")
If Qe = vbyes then
'Achtung: Der Druckername muss so geschrieben sein, wie er
'im Druckerdialog steht
Worksheets("Vorderseite").PrintOut from:=1, To:=2, ActivePrinter:="LaserJet für Duplexdruck:"
else
Worksheets("Vorderseite").PrintOut from:=1, To:=1, ActivePrinter:="LaserJet für Normaldruck:"
End If
End Sub

Gruss Rainer
Anzeige
AW: Doppelseitig drucken, normal und in VBA
Oswald
Hallo,
ja, werd ich dann so machen.
Vielen dank für deine Hilfe und Mühe.
Hab wieder mal viel gelernt.
Dir noch einen schönen Sonntag
Gruß
Oswald
Merci :-) Geschlossen o.T.
Ramses
...
;

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

Doppelseitig drucken in Excel und mit VBA


Schritt-für-Schritt-Anleitung

Um in Excel doppelseitig zu drucken, kannst Du die folgenden Schritte befolgen:

  1. Drucker auswählen: Gehe zu Datei > Drucken und wähle Deinen Drucker aus, der beidseitig drucken kann.
  2. Druckereinstellungen anpassen:
    • Klicke auf Druckereigenschaften.
    • Aktiviere die Option Beidseitig drucken oder Duplexdruck.
    • Wähle aus, ob Du lange Seite oder kurze Seite möchtest.
  3. Daten auswählen: Markiere die Tabellenblätter, die Du drucken möchtest.
  4. Drucken: Klicke auf Drucken, um den Vorgang zu starten.

Wenn Du das Drucken über VBA steuern möchtest, kannst Du den folgenden Code verwenden:

Sub Doppelseitig()
    Dim r2 As Integer
    Worksheets("Vorderseite").PrintOut Copies:=1, ActivePrinter:="Dein Druckername", Collate:=True, _
        from:=1, To:=1, Duplex:=xlDuplexLongEdge
    r2 = MsgBox("Soll die Rückseite 2 gedruckt werden?", vbYesNo, "Drucken der Abrechnung")
    If r2 = vbYes Then
        Worksheets("Rückseite 2").PrintOut Copies:=1, ActivePrinter:="Dein Druckername", Collate:=True, _
            from:=1, To:=1, Duplex:=xlDuplexLongEdge
    End If
End Sub

Häufige Fehler und Lösungen

  • Problem: Der Drucker druckt nicht beidseitig.

    • Lösung: Überprüfe die Druckereinstellungen und stelle sicher, dass Beidseitig drucken aktiviert ist. Manchmal muss diese Einstellung auch im Drucker selbst vorgenommen werden.
  • Problem: VBA kann die Druckereinstellungen nicht ändern.

    • Lösung: Du kannst die SendKeys-Methode verwenden, um die Druckereinstellungen manuell zu ändern, aber dies ist nicht zuverlässig. Alternativ kannst Du einen Drucker speziell für beidseitigen Druck einrichten und diesen in Deinem Skript verwenden.

Alternative Methoden

  • Doppelseitiges Drucken in Word: Falls Du Word verwendest, kannst Du die Funktion Drucken beidseitig direkt über die Druckoptionen auswählen, ohne VBA.

  • PDF-Export: Exportiere Deine Excel-Datei als PDF und drucke dann von einem PDF-Reader aus. Dies kann eine einfachere Lösung sein, wenn Du Probleme mit dem direkten Drucken aus Excel hast.


Praktische Beispiele

  1. Beidseitig drucken mit mehreren Tabellenblättern: Wenn Du mehrere Blätter drucken möchtest, kannst Du den Code wie folgt anpassen:

    Sub BeidseitigDruckenMehrereBlätter()
       Dim r2 As Integer
       Sheets(Array("Blatt1", "Blatt2")).PrintOut Copies:=1, ActivePrinter:="Dein Druckername", Collate:=True
       r2 = MsgBox("Soll das dritte Blatt gedruckt werden?", vbYesNo, "Drucken der Abrechnung")
       If r2 = vbYes Then
           Worksheets("Blatt3").PrintOut Copies:=1, ActivePrinter:="Dein Druckername", Collate:=True
       End If
    End Sub
  2. Drucken mit unterschiedlichen Einstellungen: Du kannst auch unterschiedliche Einstellungen für den beidseitigen Druck verwenden, indem Du den Code entsprechend anpasst.


Tipps für Profis

  • Druckerprofil erstellen: Erstelle ein Druckerprofil für beidseitiges Drucken, um Zeit zu sparen.
  • Testdruck: Mache einen Testdruck mit nur einer Seite, bevor Du große Dokumente druckst, um sicherzustellen, dass alles korrekt eingerichtet ist.
  • VBA-Fehlerbehandlung: Implementiere Fehlerbehandlung in Deinen VBA-Skripten, um Probleme beim Drucken zu minimieren.

FAQ: Häufige Fragen

1. Wie kann ich in Excel beidseitig drucken?
Um in Excel beidseitig zu drucken, wähle Deinen Drucker aus und stelle sicher, dass die Option Beidseitig drucken aktiviert ist.

2. Kann ich beidseitig drucken, wenn die Daten auf verschiedenen Tabellenblättern sind?
Standardmäßig kannst Du nicht beidseitig drucken, wenn die Daten auf unterschiedlichen Tabellenblättern liegen. Du musst die Daten auf ein Blatt zusammenführen oder einen speziellen Drucker für beidseitigen Druck verwenden.

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