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

Leerzeilen in Druckbereich NICHT drucken

Forumthread: Leerzeilen in Druckbereich NICHT drucken

Leerzeilen in Druckbereich NICHT drucken
20.08.2003 08:54:11
Gerhard
Hallo Retter!!!
Folgendes Problem belastet mich schon lange Zeit:
Ein Tabellenblatt mit Eingabefeldern und vielen Berechnungen –
daraus wird auf dem selben Tabellenblatt eine Rechnung erstellt –
diese Rechnung wird als eigener Druckbereich definiert –
da nun immer einige Eingabefelder leer bleiben, sind natürlich auch
viele Zeilen bei der Rechnung selber ohne Text bzw. Berechnung,
es liegen nur Formeln dahinter –
nun möchte ich, bevor ich die gesamte Rechnung ausdrucke
(mit vielen Leerzeilen = viele Seiten) die Leerzeilen in dem
definierten Druckbereich ausblenden.
Sollte jemand dafür einen Code bzw. Makro wissen, bitte
ich um diesen und um genaue Angabe wo und wie ich diesen
einsetze, da ich mit VBA noch nicht viel zu tun hatte.
Vielen Dank im voraus an meinen Retter.
Gruß
Gerhard
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leerzeilen in Druckbereich NICHT drucken
20.08.2003 09:56:19
WernerB.
Hallo Gerhard,
die nachstehenden Makros kopierst Du in ein normales Standard-Modul.
Starten kannst Du dann die Makros über
- Extras / Makro / Makros ... (Makroname anklicken) / Ausführen
oder über entsprechende Befehls-Schaltflächen, die Du Dir installieren und mit den Makros verknüpfen kannst.

Sub Ausblenden()
Dim Bereich As String, lo As String, ru As String, aC As String
Dim zo As Long, zu As Long, i As Long
Dim sl As Integer, sr As Integer
Application.ScreenUpdating = False
aC = ActiveCell.Address
Application.Goto Reference:="Print_Area"
Bereich = Selection.Address(False, False)
lo = Left(Bereich, InStr(Bereich, ":") - 1)             'links oben
ru = Right(Bereich, Len(Bereich) - InStr(Bereich, ":")) 'rechts unten
zo = Range(lo).Row                                      'Zeile oben
zu = Range(ru).Row                                      'Zeile unten
sl = Range(lo).Column                                   'Spalte links
sr = Range(ru).Column                                   'Spalte rechts
For i = zo To zu
If WorksheetFunction.CountBlank(Range(Cells(i, sl), Cells(i, sr))) = sr - sl + 1 Then
Rows(i & ":" & i).EntireRow.Hidden = True
End If
Next i
Range(aC).Select
Application.ScreenUpdating = True
End Sub


Sub Einblenden()
Dim Bereich As String, lo As String, ru As String, aC As String
Dim zo As Long, zu As Long
Application.ScreenUpdating = False
aC = ActiveCell.Address
Application.Goto Reference:="Print_Area"
Bereich = Selection.Address(False, False)
lo = Left(Bereich, InStr(Bereich, ":") - 1)             'links oben
ru = Right(Bereich, Len(Bereich) - InStr(Bereich, ":")) 'rechts unten
zo = Range(lo).Row                                      'Zeile oben
zu = Range(ru).Row                                      'Zeile unten
Rows(zo & ":" & zu).EntireRow.Hidden = False
Range(aC).Select
Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Leerzeilen im Druckbereich ausblenden


Schritt-für-Schritt-Anleitung

Um die leeren Zeilen im Druckbereich nicht zu drucken, kannst Du ein einfaches VBA-Makro verwenden. Folge diesen Schritten:

  1. Öffne Deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:
Sub Ausblenden()
    Dim Bereich As String, lo As String, ru As String, aC As String
    Dim zo As Long, zu As Long, i As Long
    Dim sl As Integer, sr As Integer
    Application.ScreenUpdating = False
    aC = ActiveCell.Address
    Application.Goto Reference:="Print_Area"
    Bereich = Selection.Address(False, False)
    lo = Left(Bereich, InStr(Bereich, ":") - 1)             'links oben
    ru = Right(Bereich, Len(Bereich) - InStr(Bereich, ":")) 'rechts unten
    zo = Range(lo).Row                                      'Zeile oben
    zu = Range(ru).Row                                      'Zeile unten
    sl = Range(lo).Column                                   'Spalte links
    sr = Range(ru).Column                                   'Spalte rechts
    For i = zo To zu
        If WorksheetFunction.CountBlank(Range(Cells(i, sl), Cells(i, sr))) = sr - sl + 1 Then
            Rows(i & ":" & i).EntireRow.Hidden = True
        End If
    Next i
    Range(aC).Select
    Application.ScreenUpdating = True
End Sub
  1. Schließe den VBA-Editor.
  2. Um das Makro auszuführen, gehe zu Extras > Makro > Makros, wähle Ausblenden aus und klicke auf Ausführen.

Mit diesem Makro werden die leeren Zeilen im definierten Druckbereich ausgeblendet, wodurch Du nur die relevanten Daten drucken kannst.


Häufige Fehler und Lösungen

  • Makro wird nicht ausgeführt: Stelle sicher, dass Du das Makro in einem Standardmodul eingefügt hast. Überprüfe auch, ob Du die Makros in den Excel-Optionen aktiviert hast.

  • Leerzeilen werden nicht ausgeblendet: Achte darauf, dass der Druckbereich korrekt definiert ist. Du kannst dies unter Seitenlayout > Druckbereich überprüfen.

  • Excel-Druckbereich nicht anzeigen: Vergewissere Dich, dass Du den richtigen Bereich ausgewählt hast, bevor Du das Makro ausführst.


Alternative Methoden

Falls Du keine Makros verwenden möchtest, kannst Du auch manuell die leeren Zeilen ausblenden:

  1. Wähle die Zeilen aus, die Du ausblenden möchtest.
  2. Klicke mit der rechten Maustaste und wähle Zeilen ausblenden.
  3. Um später die Zeilen wieder einzublenden, wähle die umgebenden Zeilen aus, klicke mit der rechten Maustaste und wähle Zeilen einblenden.

Beachte, dass diese Methode nicht dynamisch ist und Du die Zeilen manuell verwalten musst.


Praktische Beispiele

Wenn Du eine Rechnung erstellst und einige Eingabefelder leer bleiben, wird der Ausdruck unübersichtlich. Mit dem oben genannten Makro kannst Du sicherstellen, dass nur die benötigten Informationen gedruckt werden.

Ein Beispiel für eine Anwendung des Makros könnte sein, eine Rechnung mit 10 Zeilen zu erstellen, von denen 4 leer sind. Nach dem Ausführen des Makros bleiben nur die 6 relevanten Zeilen sichtbar und werden gedruckt.


Tipps für Profis

  • Automatisierung: Du kannst das Makro so anpassen, dass es beim Drucken automatisch ausgeführt wird. Füge dazu den Code in das Workbook_BeforePrint-Ereignis ein.

  • Drucklinien nicht anzeigen: Um die Drucklinien nicht anzuzeigen, gehe zu Seitenlayout und deaktiviere die Option Gitternetzlinien drucken.

  • Excel leere Gitternetzlinien drucken: Um sicherzustellen, dass leere Gitternetzlinien nicht gedruckt werden, kannst Du die Gitternetzlinien-Option im Druckdialog deaktivieren.


FAQ: Häufige Fragen

1. Ich kann das Makro nicht finden. Was soll ich tun?
Vergewissere Dich, dass Du in einem Standardmodul und nicht in einem Arbeitsblattmodul arbeitest. Prüfe auch, ob Du die Datei mit der Endung .xlsm (für Makros) speicherst.

2. Kann ich das Makro in anderen Excel-Versionen verwenden?
Ja, das Makro sollte in den meisten Excel-Versionen funktionieren, die VBA unterstützen (Excel 2007 und später).

3. Was passiert mit den ausgeblendeten Zeilen?
Die ausgeblendeten Zeilen bleiben in der Datei, sind jedoch für den Druck nicht sichtbar. Du kannst sie jederzeit wieder einblenden.

4. Wie kann ich das Makro anpassen?
Du kannst die Bedingungen im Code ändern, um spezifische Anforderungen zu erfüllen, z.B. nur bestimmte Zeilen auszublenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige