Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1196to1200
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige