Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Druckbereich - Nur Zellen mit Inhalt drucken

Druckbereich - Nur Zellen mit Inhalt drucken
03.07.2006 16:51:12
Ina
Hallo Forum,
ich habe ein Problem mit dem Druck...
In meiner Tabelle ist der Druckbereich (B3 - M151) definiert.
Die Zeilen 3 - 5 und die Zeile 151 sollen immer gedruckt werden, der Bereich B6 - M150 jedoch nur, wenn er Daten enthält.
Beispiel:
B6 - M15 enhalten Daten. Also sollen die Zeilen 3 - 5, der Bereich B6 - M15 und die Zeile 151 gedruckt werden.
Gibt es dafür in VBA eine Lösung? Und wenn ja, kann mir jemand ein Code-Beispiel geben?
Vielen Dank,
Ina
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Druckbereich - Nur Zellen mit Inhalt drucken
03.07.2006 18:45:40
ChrisL
Hallo Ina
Es lassen sich auch manuell keine nicht zusammenhängende Druckbereiche definieren. Eine Alternative:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Tabelle1" Then   ' hier anpassen (Tabellennamen)
On Error GoTo ErrorHandler
Cancel = True
If Range("B150") = "" Then Rows(Range("B150").End(xlUp).Row & ":" & 150).Hidden = True
Application.EnableEvents = False
ActiveSheet.PrintOut
Rows("1:151").Hidden = False
Application.EnableEvents = True
Exit Sub
ErrorHandler:
Application.EnableEvents = True
MsgBox "Makrofehler"
End If
End Sub

Alt + F11, links Doppelklick auf DieseArbeitsmappe, Code einfügen.
Der Code blendet vor dem Druck die Zeilen z.B. 6-150 aus und anschliessend wieder ein. Massgebend ist Spalte B d.h. die Zeile z.B. 6 wird anhand dieser Spalte ermittelt.
Bezüglich Druckoptionen gibt es kleinere Einschränkungen. Die entsprechende Tabelle (im Code ergänzen) muss das aktive Blatt sein. Es wird immer nur diese eine Tabelle gedruck (z.B. Druckoption "gesamte Arbeitsmappe" ist nicht möglich).
Gruss
Chris
Anzeige
AW: Druckbereich - Nur Zellen mit Inhalt drucken
03.07.2006 20:05:36
Ina
Hallo Chris,
vielen Dank für Deine Antwort.
Der Code funktioniert fast perfekt, aber...
Problem:
Die letzte Zeile mit eingetragenen Daten wird unterschlagen...
Das heisst, Zeile 100 enthält noch Daten, gedruckt wird jedoch nur einschliesslich Zeile 99.
Hast Du noch eine Idee?
Danke,
Ina
Anzeige
AW: Druckbereich - Nur Zellen mit Inhalt drucken
03.07.2006 20:13:23
ChrisL
Hallo Ina
ups... probier nochmal:
If Range("B150") = "" Then Rows(Range("B150").End(xlUp).Row + 1 & ":" & 150).Hidden = True
(Zeile ersetzen)
Viel Spass
Chris
AW: Druckbereich - Nur Zellen mit Inhalt drucken
03.07.2006 20:36:24
Ina
Hallo Chris,
die " + 1 " hat den Code perfekt gemacht!
Vielen Dank!
Grüsse,
Ina
;

Forumthreads zu verwandten Themen

Anzeige
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

Druckbereich in Excel: Nur Zellen mit Inhalt drucken


Schritt-für-Schritt-Anleitung

Um nur die Zellen mit Inhalt in einem bestimmten Druckbereich in Excel zu drucken, kannst Du folgenden VBA-Code verwenden:

  1. Öffne Excel und gehe zu der Arbeitsmappe, in der Du den Druckbereich festlegen möchtest.
  2. Drücke Alt + F11, um den VBA-Editor zu öffnen.
  3. Doppelklicke auf "DieseArbeitsmappe" im linken Fenster.
  4. Füge den folgenden Code in das Fenster ein:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If ActiveSheet.Name = "Tabelle1" Then   ' hier anpassen (Tabellennamen)
        On Error GoTo ErrorHandler
        Cancel = True
        If Range("B150") = "" Then
            Rows(Range("B150").End(xlUp).Row + 1 & ":" & 150).Hidden = True
        End If
        Application.EnableEvents = False
        ActiveSheet.PrintOut
        Rows("1:151").Hidden = False
        Application.EnableEvents = True
        Exit Sub
ErrorHandler:
        Application.EnableEvents = True
        MsgBox "Makrofehler"
    End If
End Sub
  1. Schließe den VBA-Editor und teste den Druck.

Häufige Fehler und Lösungen

  • Fehler: Letzte Zeile mit Daten wird nicht gedruckt.

    • Lösung: Stelle sicher, dass Du die Zeile Rows(Range("B150").End(xlUp).Row + 1 & ":" & 150).Hidden = True korrekt eingefügt hast. Der + 1 Teil ist wichtig, um die letzte gefüllte Zeile korrekt zu berücksichtigen.
  • Fehler: Makro funktioniert nicht.

    • Lösung: Überprüfe, ob Du den richtigen Tabellennamen im Code angibst (statt "Tabelle1" den Namen Deiner Tabelle verwenden).

Alternative Methoden

Falls Du VBA nicht verwenden möchtest, kannst Du auch manuell den Druckbereich in Excel festlegen:

  1. Wähle den Bereich aus, den Du drucken möchtest.
  2. Gehe zu "Seitenlayout" > "Druckbereich" > "Druckbereich festlegen".
  3. Um nur bestimmte Zeilen zu drucken, musst Du die Zeilen mit leeren Zellen manuell ausblenden.

Praktische Beispiele

Angenommen, Du hast Daten in den Zellen B6 bis M150, und Du möchtest nur die Zeilen drucken, die Daten enthalten. Mit dem obigen VBA-Code wird automatisch der Druckbereich angepasst, sodass nur die relevanten Zeilen mit Inhalt gedruckt werden.


Tipps für Profis

  • Nutze Debug.Print innerhalb des Codes, um den Status von Variablen zu überprüfen, falls Du auf Schwierigkeiten stößt.
  • Halte Deine Makros dokumentiert, um später Anpassungen leichter vorzunehmen.
  • Teste den Code in einer Kopie Deiner Arbeitsmappe, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich den Druckbereich auch für andere Blätter anpassen? Ja, Du musst lediglich den Tabellennamen im Code ändern, um ihn für andere Blätter anzupassen.

2. Funktioniert dieser Code in allen Excel-Versionen? Der VBA-Code sollte in den meisten modernen Excel-Versionen (ab Excel 2007) funktionieren. Möglicherweise gibt es Unterschiede in der Benutzeroberfläche.

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