Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Zeilenumbruch und fittopagestall bei pdf-Export

Forumthread: Zeilenumbruch und fittopagestall bei pdf-Export

Zeilenumbruch und fittopagestall bei pdf-Export
05.05.2026 19:22:39
jonas.poskowsky
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
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilenumbruch und fittopagestall bei pdf-Export
05.05.2026 21:23:54
daniel
Hi
"harter Zeilenumbruch" + Autofit passt nicht zusammen.
Entweder Autofit oder harter Zeilenumbruch.

Wie soll denn der Ausdruck sein?
Sollen die Inhalte auf beiden Blättern gleich groß sein oder darf Seite 1 kleiner sein als Seite 2?

das einfachste ist vermutlich wenn du die Inhalte auf zwei Tabellenblätter verteilst und diese dann gemeinsam ins PDF schreibst.
den Autofit machst du dann für beide Seiten auf 1 Seite breit und 1 Seite hoch.

das Kopieren der Inhalte auf 2 Blätter bekommst du hoffentlich alleine hin

Um zwei Tabellenblätter in ein PDF zu schreiben musst du sie vorher als Gruppe selektieren.
das geht entweder über die selektion als Array:

    Sheets(Array("Tabelle1", "Tabelle2")).Select

oder du selektierst die Blätter nacheinander und gibst ab dem zweiten Blatt dann FALSE oder 0 als Parameter an. Das ist für VBA der Hinweis, das neu selektierte Blatt nicht als einziges zu selektieren, sondern zur Gruppe hinzuzufügen.
    Sheets("Tabelle1").Select

Sheets("Tabelle2").Select False


der Ausdruck ins PDF aller selektierten Blätter erfolgt dann ganz normal:
ActiveSheet.ExportAsFixedFormat ...


Gruß Daniel
Anzeige
AW: Zeilenumbruch und fittopagestall bei pdf-Export
06.05.2026 10:47:39
jonas.poskowsky
Hallo Daniel,

herzlichen Dank! Den Rest sollte ich hinbekommen. Aber diese Skizzierung eines Alternativweges war genau das, was mir gefehlt hat.

Liebe Grüße
Jonas
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18