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

Abhängiger Seitenumbruch

Forumthread: Abhängiger Seitenumbruch

Abhängiger Seitenumbruch
Berny
Hallo VBA spezialisten,
Ich habe eine Aktionsliste, in der bei jeder zweiten Zeile eine neues Thema beginnt.
Überschrift
Aktion
Überschrift
Aktion
usw.
Die Zeile Aktion kann eine unterschiedliche anzahl an Zeilenumbrüchen haben = Variable höhe.
Nun soll es "natürlich" so sein, dass beim Ausdruck Überschrift und Aktion nicht durch einen Seitenumbruch getrennte werden.
Hier mein erster Versuch um das Problem zu lösen:

Sub seitenumbruch()
Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.ResetAllPageBreaks
For Each pb In ActiveSheet.HPageBreaks
If Cells(pb.Location.Row, 1).Value  "Überschrift" Then ActiveSheet.HPageBreaks.Add _
Before:=Cells(pb.Location.Row - 1, 1)
Next
ActiveWindow.View = xlNormalView
End Sub
Wenn ich das Modul im Einzelschritt laufen lasse funktioniert das auch. Nur wenn ich das Modul normal durchlaufen lasse wird nur der erste Seitenumbruch korrigiert. Alle folgenden werden nicht mehr korrigiert.
Hat einer eine Ahnung warum?
Wie kann ich mein Problem lösen?
M.f.G.
Berny
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Abhängiger Seitenumbruch
03.02.2011 11:47:04
fcs
Hallo Berny,
zum Beginn der For-Next-Schleife wird der Schleifenzähler entsprechend den aktuell vorhandenen HPageBreaks-Objekten gesetzt.
Wird während des Schleifendurchlaufs ein manueller Seitenumbruch hinzugefügt, dann stimmt ggf. die Zuordnung von Schleifenzähler-Daten und tatsächlich vorhandenen Seitenümbrüchen nicht mehr.
Deshalb muss nach jedem eingefügten Seitenwechsel die Schleife nochmals komplett abgearbeitet werden.
Gruß
Franz
Sub seitenumbruch()
Dim pb As HPageBreak
Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.ResetAllPageBreaks
NeuerDurchlauf:
For Each pb In ActiveSheet.HPageBreaks
If Cells(pb.Location.Row, 1).Value  "Überschrift" Then
ActiveSheet.HPageBreaks.Add Before:=Cells(pb.Location.Row - 1, 1)
GoTo NeuerDurchlauf
End If
Next
ActiveWindow.View = xlNormalView
End Sub

Anzeige
AW: Abhängiger Seitenumbruch
03.02.2011 13:01:26
Berny
Hallo Franz,
vielen Dank für Deine Hilfe.
Ich habe es gerade ausprobiert. – Geht!
Es hat nur einen kleinen Schönheitsfehler:
Ich will das ganze in das Workbook - Modul befor Print einbauen.
Wenn ich nun auf Seitenansicht gehe und diese wieder schließe ist meine Excel für eine halbe Minute Tod.
M.f.G.
Berny
Anzeige
AW: Abhängiger Seitenumbruch
04.02.2011 10:27:59
fcs
Hallo Berny,
die Bildschirmaktualisierung muss wieder aktiviert werden, bevor das Makro beendet wird. Sonst gibt es Probleme bei der Seitenvorschau/Anzeige der Tabelle
Gruß
Franz
Sub seitenumbruch()
Dim pb As HPageBreak
Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.ResetAllPageBreaks
NeuerDurchlauf:
For Each pb In ActiveSheet.HPageBreaks
If Cells(pb.Location.Row, 1).Value  "Überschrift" Then
ActiveSheet.HPageBreaks.Add Before:=Cells(pb.Location.Row - 1, 1)
GoTo NeuerDurchlauf
End If
Next
ActiveWindow.View = xlNormalView
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Abhängiger Seitenumbruch
04.02.2011 10:40:06
Berny
Hallo Franz,
Es muss einmal gesagt werden....
Du bist einfach spitze!
Da wäre ich nicht darauf gekommen.
Den Befehl »Application.ScreenUpdating = True« am Ende eines Modul habe ich bisher als unnötig angesehen. - So kann man sich irren.
Vielen Dank!
M.f.G.
Berny
;

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