Seitenumbruch automatisch anpassen
#1
Hallo Excel-Freunde,
ich bin schon langer stiller Mitleser dieses Forums und habe bisher einige Lösungsansätze erfolgreich auf meine Anwendungen angepasst.
Bei meinem aktuellen Problem komme ich leider nicht weiter und möchte Euch um Hilfe bitten.

Die Auswertung einer großen Datentabelle ergibt auf einem neuen Blatt eine Auswertung die nach folgendem Schema aufgebaut ist:

Kategorie
Überschrift  Überschrift  Überschrift
Daten           Daten           Daten

Kategorie
Überschrift  Überschrift  Überschrift
Daten           Daten           Daten

usw.

zwischen den einzelnen Bereichen ist jeweils eine Leerzeile.

Das Ganze soll ausgedruckt werden. Nun kommt es vor, dass die automatischen Seitenumbrüche mir einen Bereich so zerstückeln, das z.B. unten auf dem Blatt die Kategorie steht und auf der nächsten Seite erst die Überschriften.

Ich möchte das gern per VBA automatisch anpassen, dabei soll folgende Logik angewandt werden:
Suche den ersten Seitenumbruch, ist die Zelle leer, alles ok weiter zum nächsten.
Steht in der Zelle etwas und die Zelle darüber ist leer, alles ok weiter zum nächsten.
Steht in der Zelle etwas und die Zelle darüber ist nicht leer, suche nach oben nach der nächsten leeren Zelle und füge darunter einen Seitenumbruch ein.

Vielen Dank fürs Lesen und Helfen...  Sleepy
Top
#2
Hi,

wäre es für dich zu umständlich, in der Ansicht auf Umbruchvorschau zu gehen und mit der Maus die blauen Linien manuell zu verschieben?
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
Nein, das ist es nicht. Aber es sind halt viele und es soll evtl. auch mal jemand machen, der von Excel nicht viel Ahnung hat.
Top
#4
Hi,

meine bescheidene Meinung: es liegt immer an dem, wie derjenige sein eigenes Wissen an weniger Wissende weitergibt. Wink

Bei einer VBA-Lösung kann ich dir leider nicht helfen.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#5
auch auf die Gefahr hin, dass bei Herber jemand antworten sollte, versuche es mal mit diesem Code:

Code:
Sub T_2()
Dim WS As Worksheet: Set WS = ActiveSheet

For i = 1 To WS.HPageBreaks.Count
    Ad = WS.HPageBreaks(i).Location.Address

    If Not IsEmpty(Range(Ad).Offset(-1)) Then
               Range(Ad).End(xlUp).PageBreak = xlPageBreakManual
    End If

Next i
End Sub
Top
#6
Vielen Dank, es macht genau das was es soll!
Ich bin begeistert und zugleich überrascht. Ich habe mir mit mehreren Schleifen einen abgebrochen....

Wahrscheinlich sind meine anderen Codes auch auf ein Bruchteil reduzierbar...
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste