Mehrere Tabellenblätter in Excel mit VBA drucken
Schritt-für-Schritt-Anleitung
Um mehrere Tabellenblätter in Excel mit VBA zu drucken, kannst du das folgende Makro verwenden. Dieses Beispiel zeigt, wie du die Druckbereiche für unterschiedliche Arbeitsblätter einrichten und anschließend drucken kannst.
- Öffne Excel und drücke
ALT
+ F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeinDateiname)" > Einfügen > Modul.
- Kopiere den folgenden Code in das Modul:
Sub DruckeMehrereTabellenblaetter()
Application.ScreenUpdating = False
' Druckbereich und Kopfzeile für Blatt A festlegen
With ThisWorkbook.Worksheets("A").PageSetup
.Zoom = False
.PrintArea = "$A$6:$L$25"
.Orientation = xlPortrait
.Zoom = 75
.CenterHeader = "&""Comic Sans MS""&16""&I" & "Inventurwerte - A"""
End With
' Druckbereich und Kopfzeile für Blatt B festlegen
With ThisWorkbook.Worksheets("B").PageSetup
.Zoom = False
.PrintArea = "$A$6:$O$76"
.Orientation = xlPortrait
.Zoom = 78
.CenterHeader = "&""Comic Sans MS""&16""&I" & "Inventurwerte - B"""
End With
' Zu druckende Blätter gruppieren
ThisWorkbook.Sheets(Array("A", "B")).Select
Application.Dialogs(xlDialogPrint).Show
' Gruppierung wieder aufheben
ThisWorkbook.Sheets("A").Select
Application.ScreenUpdating = True
End Sub
- Schließe den VBA-Editor und führe das Makro aus.
Häufige Fehler und Lösungen
-
Fehler: "Das angegebene Blatt existiert nicht."
- Stelle sicher, dass die Blattnamen in deinem Code exakt mit den Namen in Excel übereinstimmen.
-
Fehler: "Druckbereich nicht definiert."
- Überprüfe, ob der Druckbereich für jedes Blatt korrekt eingestellt ist.
-
Lösung: Drucken mehrerer Blätter auf einer Seite
- Um mehrere Blätter auf einer Seite zu drucken, kannst du die Option "Mehrere Seiten pro Blatt" in den Druckeinstellungen wählen.
Alternative Methoden
Sub AlleTabellenblaetterDrucken()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.PrintOut
Next ws
End Sub
Praktische Beispiele
Hier sind einige Beispiele für Makros, die für spezifische Anforderungen angepasst werden können:
- Druckbereich für alle Arbeitsblätter festlegen:
Sub DruckbereichFestlegen()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.PageSetup.PrintArea = "$A$1:$B$10" ' Anpassen je nach Bedarf
Next ws
End Sub
- Drucken von bestimmten Tabellenblättern:
Sub BestimmteTabellenblaetterDrucken()
ThisWorkbook.Sheets(Array("A", "C")).Select
Application.Dialogs(xlDialogPrint).Show
ThisWorkbook.Sheets("A").Select
End Sub
Tipps für Profis
- Verwende
Application.ScreenUpdating = False
, um die Performance zu verbessern, wenn dein Makro viele Änderungen vornimmt.
- Wenn du die Rahmenlinien für Druckbereiche anpassen möchtest, kannst du separate Subroutinen für das Setzen und Zurücksetzen von Rahmenlinien erstellen.
- Nutze Variablen, um den Druckbereich dynamisch festzulegen, insbesondere wenn sich die Bereiche von Blatt zu Blatt unterscheiden.
FAQ: Häufige Fragen
1. Wie kann ich mehrere Blätter auf einer Seite drucken?
Du kannst in den Druckeinstellungen die Option "Mehrere Seiten pro Blatt" auswählen oder den PrintOut
-Befehl mit entsprechenden Optionen im VBA verwenden.
2. Was ist der Unterschied zwischen PrintArea
und PrintOut
?
PrintArea
legt fest, welcher Bereich eines Arbeitsblatts gedruckt wird, während PrintOut
den Druckbefehl an sich ausführt.
3. Wie entferne ich den Druckbereich?
Um den Druckbereich in Excel zu entfernen, kannst du ActiveSheet.PageSetup.PrintArea = False
verwenden.