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

Forumthread: Drucken - Seitenumbruch in Bereichen verhindern

Drucken - Seitenumbruch in Bereichen verhindern
Klaus
Hallo,
ich möchte ein Tabellenblatt per VBA (Knopf) ausdrucken, das sich über mehrere Seiten erstreckt (vertikal). Horizontal passt alles auf eine Seite. Innerhalb des Tabellenblatts habe ich Bereiche (Blöcke (z. B. A4:G23) bzw. Grafiken), innerhalb derer kein Seitenumbruch stattfinden soll. Kann man irgendwie bestimmte Bereiche definieren, in denen kein Seitenumbruch erfolgt und direkt davor umgebrochen wird? Wenn ja, was ist, wenn ein solcher Bereich nicht auf einer Seite Platz findet?
Bitte helft mir weiter.
Vielen Dank,
Klaus
Anzeige
AW: Drucken - Seitenumbruch in Bereichen verhindern
13.02.2010 12:02:58
Nepumuk
Hallo,
Menüleiste - Ansicht - Seitenumbruchsvorschau. Hier kannst du manuell einstellen in welcher Spalte der Umbruch erfolgen soll.
Gruß
Nepumuk
AW: Drucken - Seitenumbruch in Bereichen verhindern
13.02.2010 12:08:47
Klaus
Hallo Nepumuk,
danke für deine Hilfe. Mein Problem ist, dass die Bereiche, die nicht getrennt werden sollen dynamisch erstellt werden. Sie ergeben sich aus Berechnungen, die unterschiedlich viel Platz bei den Ergebnissen brauchen. Nach der Berechnung sollte ich einen solchen Ergebnisbereich als "nicht teilbar" schützen. Geht so etwas dynamisch via VBA ohne dass händisch über die Seitenumbruchsvorschau Anpassungen notwendig sind?
Danke für deine Hilfe,
Klaus
Anzeige
AW: Drucken - Seitenumbruch in Bereichen verhindern
13.02.2010 13:37:27
Nepumuk
Hallo,
natürlich kannst du "manuelle" Seitenumbrüche auch per VBA einfügen.
Gruß
Nepumuk
AW: Drucken - Seitenumbruch in Bereichen verhindern
13.02.2010 16:09:09
Klaus
Hallo Nepumuk,
danke für den Hinweis. Ich habe aber noch ein Problem. Die Berechnungen liefern mehrere Blöcke, die unterschiedliche Höhen haben (bis zu 30 Blöcken mit verschiedener Anzahl an Zeilen (zwischen 6 und 30 Zeilen). Nachdem die Blöcke gefüllt sind sieht es etwa wie folgt aus:
Range(A1:G23) mit Daten
2 Leerzeilen
Range(A26:G37) mit Daten
2 Leerzeilen
Range(A40:G68) mit Daten
...
Der Seitenumbruch soll nicht direkt vergeben werden, sondern wenn gedruckt wird bzw. auf die Seitenumbruchvorschau gewechselt wird, so soll Excel die Seitenumbrüche festlegen, allerdings soll innerhalb der gefüllten Bereiche kein Umbruch vorkommen. Diese Bereiche sollen vor einem Umbruch geschützt werden. Im obigen Fall müsste der komplette dritte Block auf die zweite Seite rutschen. Ist so etwas möglich?
Danke für deine Unterstützung,
Klaus
Anzeige
AW: Drucken - Seitenumbruch in Bereichen verhindern
13.02.2010 16:40:07
Nepumuk
Hallo,
soll der Umbruch immer zwischen zwei Leerzeilen sein? Der erste also in zwischen 24 und 25 der zweite zwischen 38 und 39?
Gruß
Nepumuk
AW: Drucken - Seitenumbruch in Bereichen verhindern
13.02.2010 16:45:30
Klaus
Hallo Nepumuk,
es sollen immer soviel Blöcke wie möglich auf eine Seite. D. h. in dem geschilderten Beispiel soll nur ein Umbruch (direkt vor Zeile 40) sein, sodass der dritte Block auf der zweiten Seite landet. Die ersten beiden Blöcke sollen auf der ersten Seite sein. Wenn Excel die Seitenumbrüche im Beispiel ohne Eingriffe vergibt, dann wird der dritte Block gespalten (bei mir nach Zeile 52).
Hilft dir diese Info weiter?
Gruß,
Klaus
Anzeige
AW: Drucken - Seitenumbruch in Bereichen verhindern
13.02.2010 18:01:46
Nepumuk
Hallo,
mal so auf die schnelle. Die Seitenumbrüche hat der Teufel erfunden um uns zu ärgern.
Public Sub Automatic_Pagebreaks()
    Dim lngIndex As Long, lngBreakRow As Long, lngRow As Long
    Dim blnAgain As Boolean
    Application.ScreenUpdating = False
    ActiveWindow.View = xlPageBreakPreview
    With Tabelle1
        Do
            blnAgain = False
            For lngIndex = 1 To .HPageBreaks.Count
                lngBreakRow = .HPageBreaks(lngIndex).Location.Row
                If Not IsEmpty(.Rows(lngBreakRow).Cells(1).Value) Then
                    lngRow = .Cells(lngBreakRow, 1).End(xlUp).Row
                    If lngRow = 1 Then
                        MsgBox "Kann Seitenumbruch nicht erstellen."
                        Exit Sub
                    Else
                        Set .HPageBreaks(lngIndex).Location = .Cells(lngRow, 1).Offset(-1)
                        blnAgain = True
                        Exit For
                    End If
                End If
            Next
        Loop Until Not blnAgain
    End With
    ActiveWindow.View = xlNormalView
    Application.ScreenUpdating = True
End Sub

Gruß
Nepumuk
Anzeige
AW: Drucken - Seitenumbruch in Bereichen verhindern
13.02.2010 20:02:29
Klaus
Hallo Nepumuk,
wunderbar - das ist eine tolle Idee! Es funktioniert einwandfrei, außer wenn ein Block länger als eine Seite ist - das führt zu einer Endlosschleife, so glaube ich zumindest. Hast du noch eine Idee, um auch solche Blöcke zuzulassen? Bei solchen Blöcken muss dann innerhalb des Blocks umgebrochen werden.
Vielen Dank für deine tolle Unterstützung,
Klaus
Anzeige
AW: Drucken - Seitenumbruch in Bereichen verhindern
13.02.2010 20:09:55
Nepumuk
Hallo,
das wird mir zu aufwendig, ich hab für das bisschen Code schon fast eine Stunde gebraucht, denn wie schon geschrieben, das PageBreak-Objekt hat der Teufel erfunden. Eventuell hat ja jemand anderes Lust dazu.
Gruß
Nepumuk
AW: Drucken - Seitenumbruch in Bereichen verhindern
13.02.2010 20:53:34
Klaus
Hallo Nepumuk,
alles klar. Vielleicht findet sich sonst jemand im Forum, der mir weiterhelfen kann. Ich werde deinen Code nehmen und versuchen, ob ich das noch erweitern kann.
Vielen, vielen Dank für deine Hilfe und ein schönes Wochenende,
Klaus
Anzeige
AW: Drucken - Seitenumbruch in Bereichen verhindern
14.02.2010 13:16:44
Reinhard
Hallo Klaus,
teste mal ob deine Blöcke sauber und komplett angezeigt werden, besonders die einzeiligen oder kurzen Blöcke.
Anstatt MsgBox kannste auch
.Cells(n+1,10)=von(n)
.Cells(n+1,11)=bis(n)
benutzen.
Sub Druck()
Dim Von(1000) As Long, Bis(1000) As Long, N As Long, Anz As Long
Dim Z As Long
With Worksheets("Tabelle1")
Von(0) = 1
Do
If .Cells(Von(Anz) + 1, 1)  "" Then
Bis(Anz) = Cells(Von(Anz), 1).End(xlDown).Row
Else
Bis(Anz) = Von(Anz)
End If
Anz = Anz + 1
Von(Anz) = Cells(Bis(Anz - 1), 1).End(xlDown).Row
If Von(Anz) > .Cells(Rows.Count, 1).End(xlUp).Row Then Exit Do
Loop While 1
For N = LBound(Von) To Anz - 1
MsgBox Von(N) & " - " & Bis(N)
Next N
End With
End Sub

Gruß
Reinhard
Anzeige
AW: Drucken - Seitenumbruch in Bereichen verhindern
15.02.2010 08:00:24
Klaus
Hallo Reinhard,
danke für deine Hilfe. Das Erkennen der Blöcke funktioniert gut. Damit kann ich auch Seitenumbrüche setzen.
Danke an Nepumuk und dich für eure Hilfe,
Klaus
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Seitenumbruch in Excel effizient steuern


Schritt-für-Schritt-Anleitung

Um in Excel den Seitenumbruch in bestimmten Bereichen zu verhindern, kannst Du VBA verwenden. Folge diesen Schritten:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Neues Modul erstellen: Klicke auf Einfügen und wähle Modul.

  3. Code einfügen: Füge den folgenden Code in das Modul ein:

    Public Sub Automatic_Pagebreaks()
       Dim lngIndex As Long, lngBreakRow As Long, lngRow As Long
       Dim blnAgain As Boolean
       Application.ScreenUpdating = False
       ActiveWindow.View = xlPageBreakPreview
       With Tabelle1
           Do
               blnAgain = False
               For lngIndex = 1 To .HPageBreaks.Count
                   lngBreakRow = .HPageBreaks(lngIndex).Location.Row
                   If Not IsEmpty(.Rows(lngBreakRow).Cells(1).Value) Then
                       lngRow = .Cells(lngBreakRow, 1).End(xlUp).Row
                       If lngRow = 1 Then
                           MsgBox "Kann Seitenumbruch nicht erstellen."
                           Exit Sub
                       Else
                           Set .HPageBreaks(lngIndex).Location = .Cells(lngRow, 1).Offset(-1)
                           blnAgain = True
                           Exit For
                       End If
                   End If
               Next lngIndex
           Loop Until Not blnAgain
       End With
       ActiveWindow.View = xlNormalView
       Application.ScreenUpdating = True
    End Sub
  4. Makro ausführen: Du kannst das Makro über F5 ausführen oder einen Button auf Deinem Excel-Blatt erstellen, um es einfacher zu machen.

Dieser Code sorgt dafür, dass Excel die Seitenumbrüche dynamisch anpasst und dabei die festgelegten Bereiche (z.B. A4:G23) nicht trennt.


Häufige Fehler und Lösungen

  • Seitenumbruch funktioniert nicht: Stelle sicher, dass die Zellinhalte in den definierten Bereichen korrekt sind und keine leeren Zeilen zwischen den Blöcken vorhanden sind.
  • Endlosschleife beim Drucken: Wenn ein Block länger als eine Seite ist, kann dies zu einer Endlosschleife führen. Achte darauf, dass Du die Logik im VBA-Code so anpasst, dass auch innerhalb dieser langen Blöcke Umbrüche gesetzt werden.

Alternative Methoden

  1. Manueller Seitenwechsel: Du kannst Seitenumbrüche manuell in der Umbruchvorschau hinzufügen, indem Du die gewünschte Zeile auswählst und mit der rechten Maustaste auf Seitenumbruch einfügen klickst.
  2. Druckbereich anpassen: Um den Druckbereich festzulegen, gehe zu Seitenlayout > Druckbereich > Druckbereich festlegen.

Praktische Beispiele

Wenn Du mehrere Blöcke in Deiner Excel-Tabelle hast, kannst Du diese wie folgt anordnen:

  • Block 1: A1:G23
  • Block 2: A26:G37
  • Block 3: A40:G68

Mit dem oben genannten VBA-Code wird sichergestellt, dass Block 3 nicht auf Seite 1 gedruckt wird, wenn nicht genügend Platz ist.


Tipps für Profis

  • Umbruchlinien ausblenden: Um die gestrichelten Linien des Druckbereichs auszublenden, gehe zu Seitenlayout und deaktiviere die Option Umbruchlinien anzeigen.
  • Dynamische Anpassungen: Überlege, ob Du bestimmte Bereiche als nicht drucken markieren möchtest, um die Übersichtlichkeit der Druckausgaben zu verbessern.

FAQ: Häufige Fragen

1. Was ist ein Seitenumbruch in Excel?
Ein Seitenumbruch in Excel ist eine visuelle Trennung, die angibt, wo eine neue Seite beginnt, wenn ein Dokument gedruckt wird.

2. Wie kann ich Seitenumbrüche automatisch einfügen?
Du kannst dies über VBA-Skripte tun, indem Du die Bereiche definierst, in denen keine Umbrüche erfolgen sollen. Alternativ kannst Du die Umbruchvorschau verwenden, um manuelle Anpassungen vorzunehmen.

3. Warum funktioniert der Seitenumbruch nicht?
Das kann verschiedene Ursachen haben, wie ungültige Zellinhalte oder fehlende Leerzeilen zwischen den Blöcken. Überprüfe die Daten und die Logik im VBA-Code.

4. Wie kann ich die Druckvorschau in Excel anpassen?
Du kannst die Druckvorschau anpassen, indem Du die Seitenlayout-Optionen in Excel verwendest und den Druckbereich anpasst.

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