Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
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

Seitenumbruch mit VBA

Seitenumbruch mit VBA
22.02.2016 11:40:44
Ruppert
Hallo zusammen.
Ich bräuchte einmal Hilfe zu folgendem Problem meinerseits:
Meine Tabelle ist in der Länge variabel, sie umfasst die Spalten A bis AV, wobei Gliederungsstufen enthalten sind. Die Überschriftenzeilen sind die Zeile 13-21, die Zeilen 13 bis 19 sind in der Seitenansicht Wiederholungszeilen. Die Daten sind in Blöcken angeführt, das eindeutige Merkmal für den Beginn eines neuen Blockes ist, wenn in den verbundenen Spalten B bis D der Text "Summe LV" steht. In meinem Beispiel habe ich das farblich hervorgehoben. Im Beispiel umfasst der 1. Block die Zeilen 53 bis 69, der 2. Block die Zeilen 70 bis 86 usw.
Ich hätte gerne den Seitenumbruch so festgelegt, dass soviel vollständige Blöcke wie möglich pro Seite untergebracht werden.
Die Zeilen 20 bis 52 müssen bei dem Seitenumbruch nicht enthalten sein. Diese kann ich durch die Gliederung vorab ausblenden.
https://www.herber.de/bbs/user/103773.xlsm
Vielen Dank schon mal vorab.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Seitenumbruch mit VBA
22.02.2016 12:48:42
firmus
Hi Ruppert,
schau Dir doch mal dieses Beispiel an, hier geht es auch um Block-orientierten Seitenumbruch.
https://www.herber.de/forum/archiv/1456to1460/t1456797.htm
Habe leider im Moment keine Zeit detailliert darauf einzugehen oder daran zu arbeiten.
Gruß
Firmus

AW: Seitenumbruch mit VBA
22.02.2016 14:03:24
fcs
Hallo Ruppert,
nachfolgend ein entsprechendes Makro.
Es könnt sein, dass du noch das abschalten des Blattschutzes in das Makro einbauen muss.
Gruß
Franz
Sub HorizontaleSeitenwechsel()
Dim objPB As HPageBreak
Dim wks As Worksheet
Dim intK As Integer
Dim Zeile As Long, ZeileSumme As Long, ZeileSummeV As Long, ZeilePB As Long
Set wks = Worksheets("Allgemein")
'Alle horizontalen Seitenwechsel löschen
For intK = wks.HPageBreaks.Count To 1 Step -1
Set objPB = wks.HPageBreaks(intK)
If objPB.Type = xlPageBreakManual Then objPB.Delete
Next
With wks
'1. automatischen horiz. Seitenwechsel ermitteln
ZeilePB = fncNextHPagebreak(wks, Zeile:=22)
For Zeile = 22 To .Cells(.Rows.Count, 2).End(xlUp).Row
If .Cells(Zeile, 2).Value = "Summe LV" Then
ZeileSumme = Zeile
If ZeileSumme > ZeilePB Then
'horiz. Seitenwechsel setzen vor vorheriem "Summe LV" und nächsten _
Seitenwechsel ermitteln
If ZeilePB - ZeileSummeV  Zeile Then
fncNextHPagebreak = objPB.Location.Row
End If
Next
End Function

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige