Bereich drucken per VBA in Excel
Schritt-für-Schritt-Anleitung
-
Den letzten Eintrag finden: Um den Druckbereich dynamisch festzulegen, ermittelst du zunächst die letzte verwendete Zeile in deiner Tabelle. Das kannst du mit folgendem VBA-Code tun:
Dim letzteZeile As Long
letzteZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
-
Druckbereich festlegen: Nun kannst du den Druckbereich festlegen, indem du die ermittelte letzte Zeile in den Code einfügst:
ActiveSheet.PageSetup.PrintArea = "$A$1:$K$" & letzteZeile
-
Seitenumbrüche setzen: Um die Seitenumbrüche festzulegen, verwende den folgenden Code:
Set ActiveSheet.VPageBreaks(1).Location = Range("D1")
Set ActiveSheet.VPageBreaks(2).Location = Range("H1")
Set ActiveSheet.HPageBreaks(1).Location = Range("A" & letzteZeile + 1)
-
Drucken: Um das Dokument anschließend zu drucken, kannst du den Befehl ActiveSheet.PrintOut
verwenden.
Häufige Fehler und Lösungen
Alternative Methoden
Eine alternative Methode zum Drucken eines Bereichs in Excel ist die Verwendung des Excel-Druckdialogs. Du kannst den gewünschten Bereich manuell auswählen und dann über Datei > Drucken
den Druckbereich anpassen. Diese Methode ist jedoch weniger automatisiert und erfordert manuelle Eingriffe.
Praktische Beispiele
Hier ist ein einfaches Beispiel, wie du den gesamten Bereich eines Tabellenblattes drucken kannst:
Sub BereichDrucken()
Dim letzteZeile As Long
letzteZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
ActiveSheet.PageSetup.PrintArea = "$A$1:$K$" & letzteZeile
ActiveSheet.PrintOut
End Sub
Wenn du ein bestimmtes Tabellenblatt drucken möchtest, kannst du den Code anpassen:
Sub SpezifischesBlattDrucken()
Dim letzteZeile As Long
With Worksheets("TabelleX")
letzteZeile = .Cells(Rows.Count, 1).End(xlUp).Row
.PageSetup.PrintArea = "$A$1:$K$" & letzteZeile
.PrintOut
End With
End Sub
Tipps für Profis
- Nutze die
UsedRange
-Eigenschaft, um automatisch den verwendeten Bereich deiner Tabelle zu ermitteln.
- Setze Variablen für wiederverwendbare Werte, um deinen Code sauber und effizient zu halten.
- Teste dein Makro in einer Kopie deiner Arbeitsmappe, um unerwartete Änderungen zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich einen bestimmten Bereich drucken, ohne das aktive Blatt zu verwenden?
Du kannst das spezifische Blatt mit Worksheets("Tabellenname")
ansprechen und deinen Druckbereich entsprechend festlegen.
2. Was kann ich tun, wenn Excel immer noch zu viele Seiten druckt?
Überprüfe, ob in deinem Datenbereich leere Zellen oder Zeilen vorhanden sind, die Excel als Teil des Druckbereichs interpretiert. Bereinige unnötige Daten, um den Druckbereich zu optimieren.