HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
jonas.poskowsky
05.05.2026 17:22:39
Zeilenumbruch und fittopagestall bei pdf-Export
Hallo allerseits,

ich habe hier so ein bisschen autodidaktisches VBA und möchte aus einem Tabellenblatt per Makro ein pdf erzeugen. Das Tabellenblatt selbst wird mittels eines anderen Makros befüllt, wobei die Nutzer*innen zuvor ein Datum in Zelle B3 definieren und einen Betrieb in Zelle A3. Je nach Betrieb kommen dann unterschiedlich viele Daten zusammen, die aber immer in zwei thematische Kategorien aufgesplittet sind. Dort, wo die zweite Kategorie beginnt, steht dann noch mal in Spalte A "Betrieb:" und in Spalte B die Benennung desselben. Und dann kommen halt die Daten der zweiten Kategorie.

Bisher hat das soweit gepasst, dass ich einen Zeilenumbruch über HPageBreaks.Add eingefügt hatte und dann alles schön auf zwei Seiten aufgeteilt hatte.
Nun ist aber die Anforderung hinzugekommen, die Daten der ersten Kategorie zu ergänzen, so dass zumindest in einigen Fällen mehr Zeilen für die erste Kategorie entstehen als auf eine Seite passen. Deshalb laufen die Daten der ersten Kategorie nun teilweise auch auf die zweite Seite des pdf und dann kommt der Zeilenumbruch und dann die zweite Kategorie.
Ich habe dann ausprobiert, das ganze über FitToPagesTall zu lösen. Das führt aber dazu, dass der Seitenumbruch zwischen erster und zweiter Kategorie komplett ignoriert wird. Dabei scheint es egal, ob ich den Zeilenumbruch vor oder nach FitToPagesTall einfüge.
Ziel ist letzten Endes, dass die Daten der ersten Kategorie komplett auf Seite 1 dargestellt werden und die Daten der zweiten Kategorie auf Seite 2. Gewissermaßen so als würde ich zunächst ein pdf mit FitToPagesTall =1 erst nur bis Ende der ersten Kategorie ein pdf erzeugen und dann ein weiteres für die zweite Kategorie erstellen und beide zusammenfügen.

Hat irgendjemand eine Idee, wie ich das bewerkstelligen kann? Vielen Dank für Eure Ideen!

Hier mein VBA-Skript:


Sub pdf_erstellen()

Dim tempPath As String
Dim tempfile As String
Dim wsCtrl As Worksheet
Dim Betr As String
Dim rse As String
Dim Today As Variant
Dim DatumWert As Variant
Dim Jahr As Variant
Dim foundRow As Long

Set wsCtrl = ThisWorkbook.Sheets("Ctrl")

Betr = wsCtrl.Range("A3").Value
DatumWert = wsCtrl.Range("B3").Value
Jahr = Year(DatumWert)
Today = Date

tempPath = "\\fileserver\folder\"
tempfile = tempPath & "_erzeugt_" & Today & "_Ref_" & DatumWert & ".pdf"

Dim lastRowCtrl As Long
lastRowCtrl = wsCtrl.Cells(wsCtrl.Rows.Count, "A").End(xlUp).Row

wsCtrl.ResetAllPageBreaks
foundRow = 0

For i = 14 To lastRowCtrl
If InStr(CStr(wsCtrl.Cells(i, 1).Value), "Betrieb:") > 0 Then
foundRow = i
Exit For
End If
Next i

wsCtrl.PageSetup.PaperSize = xlPaperA4
wsCtrl.PageSetup.Zoom = False
wsCtrl.PageSetup.Orientation = xlLandscape 'xlPortrait
wsCtrl.PageSetup.FitToPagesWide = 1
wsCtrl.PageSetup.FitToPagesTall = False

If foundRow > 0 Then
wsCtrl.HPageBreaks.Add Before:=wsCtrl.Rows(foundRow)
End If

wsCtrl.Range("A5:I" & lastRowCtrl).ExportAsFixedFormat Type:=xlTypePDF, Filename:=tempfile, OpenAfterPublish:=True

Dim pdfApp As Object
Set pdfApp = CreateObject("Shell.Application")
pdfApp.Open tempfile

End Sub
Als Antwort auf diesen Beitrag
Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.