Dynamischer Druckbereich in Excel mit VBA erstellen
Schritt-für-Schritt-Anleitung
Um den dynamischen Druckbereich in Excel mittels VBA festzulegen, kannst du die folgenden Schritte befolgen:
-
Öffne den Visual Basic for Applications (VBA) Editor:
- Drücke
ALT
+ F11
in Excel, um den VBA-Editor zu öffnen.
-
Ein neues Modul erstellen:
- Klicke auf
Einfügen
und wähle Modul
.
-
Füge den folgenden Code ein:
Sub Drucken()
Dim loLetzte As Long, raDruckbereich As Range
With ActiveSheet
If WorksheetFunction.CountA(.Range(.Cells(5, 2), .Cells(104, 2))) = 0 Then
MsgBox "Es sind keine Druckdaten vorhanden."
Exit Sub
End If
loLetzte = .Columns(2).Find("*", LookIn:=xlValues, SearchDirection:=xlPrevious).Row
If .Cells(loLetzte, 2).Offset(-2, 0) = "" Then
Set raDruckbereich = .Range(.Cells(113, 1), .Cells(loLetzte + 3, 21))
Else
Set raDruckbereich = .Range(.Cells(113, 1), .Cells(loLetzte + 1, 21))
End If
.PageSetup.PrintArea = raDruckbereich.Address
.PrintPreview
End With
Set raDruckbereich = Nothing
End Sub
-
Makro ausführen:
- Du kannst das Makro direkt aus dem VBA-Editor ausführen oder es einem Button in deiner Excel-Tabelle zuweisen.
Häufige Fehler und Lösungen
-
Druckbereich wird nicht dynamisch angepasst:
- Stelle sicher, dass die Zellen im Bereich wirklich Daten enthalten und nicht nur Formeln, die einen leeren String zurückgeben. Verwende
IsNumeric
oder CountA
, um sicherzustellen, dass tatsächlich Werte vorhanden sind.
-
Druckbereich grau hinterlegt:
- Wenn der Druckbereich grau hinterlegt ist, könnte dies daran liegen, dass er außerhalb des druckbaren Bereichs liegt. Überprüfe die Einstellungen für die Seitenränder und den Papierformat.
-
Makro wird nicht ausgeführt:
- Überprüfe, ob das Makro in der richtigen Arbeitsmappe gespeichert ist und dass die Makros in deinen Excel-Optionen aktiviert sind.
Alternative Methoden
Falls du den dynamischen Druckbereich ohne VBA festlegen möchtest, kannst du folgende Methode verwenden:
-
Tabelle filtern:
- Filtere die Daten in deiner Tabelle so, dass nur die relevanten Zeilen angezeigt werden.
-
Druckbereich manuell anpassen:
- Markiere den gewünschten Bereich und gehe zu
Seitenlayout
> Druckbereich
> Druckbereich festlegen
.
Praktische Beispiele
Wenn du eine Excel-Tabelle hast, in der du nur die Zeilen drucken möchtest, in denen Spalte A nicht leer ist, kannst du den folgenden Code verwenden:
Sub Drucken()
Dim Zeile As Long
With ActiveSheet
Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row
.PageSetup.PrintArea = .Range(.Cells(107, 1), .Cells(Zeile, 21)).Address
.PrintPreview
End With
End Sub
Dieser Code sucht die letzte Zeile mit Daten in Spalte A und passt den Druckbereich entsprechend an.
Tipps für Profis
FAQ: Häufige Fragen
1. Wie kann ich den Druckbereich automatisch anpassen?
Um den Druckbereich automatisch anzupassen, kannst du VBA verwenden. Der Code sucht die letzte Zeile mit Daten und passt den Druckbereich entsprechend an.
2. Ist es möglich, den Druckbereich ohne VBA festzulegen?
Ja, du kannst den Druckbereich manuell festlegen, indem du die relevanten Zellen auswählst und unter Seitenlayout
den Druckbereich festlegst.
3. Warum wird mein Druckbereich nicht korrekt angezeigt?
Das kann daran liegen, dass die Zellen im Druckbereich leer sind oder nur Formeln enthalten, die leere Strings zurückgeben. Stelle sicher, dass die Zellen tatsächlich Werte enthalten.