Urlaub 2020. Morgens 7:00 Uhr. Handtuch auf die Couch legen. Nicht, dass mein Platz später belegt ist.
Gegeben sei eine Tabelle die per Programmierung erzeugt wird. Sie hat Zwischenüberschriften.
![](https://www.excel-nervt.de/wp-content/uploads/2020/05/20200521Seitenumbruch01.png)
Der Ausdruck ist etwas unglücklich, da die Zwischenüberschriften irgendwo auf der Seite stehen. Sie sollen immer am oberen Papierrand stehen.
![](https://www.excel-nervt.de/wp-content/uploads/2020/05/20200521Seitenumbruch02-1024x1016.png)
Kein Problem: die Befehle für Seitenumbruch einfügen (die Zeilen werden natürlich „gesucht“ – die Zeilennummer berechnet), ist schnell gefunden:
ThisWorkbook.Worksheets(1).HPageBreaks.Add Before:=ThisWorkbook.Worksheets(1).Cells(5, 1)
ThisWorkbook.Worksheets(1).HPageBreaks.Add Before:=ThisWorkbook.Worksheets(1).Cells(30, 1)
ThisWorkbook.Worksheets(1).HPageBreaks.Add Before:=ThisWorkbook.Worksheets(1).Cells(51, 1)
Klappt. Die ersten vier Zeilen werden wiederholt.
![](https://www.excel-nervt.de/wp-content/uploads/2020/05/20200521Seitenumbruch03-1024x1022.png)
Allerdings sollte die Tabelle auf eine Seite angepasst werden:
With ThisWorkbook.Worksheets(1).PageSetup
.Zoom = False
.FitToPagesWide = 1
End With
Und was jetzt passiert entzieht sich meiner Kenntnis:
![](https://www.excel-nervt.de/wp-content/uploads/2020/05/20200521Seitenumbruch04-1024x1014.png)
Ich schaffe es nicht die Seitenbreite = 1 einzustellen UND Seitenumbrüche einzufügen. Alle Versuche die Reihenfolge der Zeilen zu ändern, Application.PrintCommunication ein- oder auszuschalten, die Eigenschaft PageBreak auf xlPageBreakManual festzulegen … Alles scheitert. Also habe ich nachgesehen, wie „breit“ eine Seite ist. Hier: 60%. Und mit dem Befehl
ThisWorkbook.Worksheets(1).PageSetup.Zoom = 60
klappt es auch, wie man sehen kann:
![](https://www.excel-nervt.de/wp-content/uploads/2020/05/20200521Seitenumbruch05-1024x1019.png)
![](https://www.excel-nervt.de/wp-content/uploads/2020/05/20200521Seitenumbruch06.png)
Hier der ganze Code:
Sub SeiteEinrichten()
ThisWorkbook.Worksheets(1).ResetAllPageBreaks
ThisWorkbook.Worksheets(1).PageSetup.PrintArea = ""
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$4"
.PrintTitleColumns = ""
End With
With ThisWorkbook.Worksheets(1).PageSetup
.Zoom = False
.FitToPagesWide = 1
End With
ThisWorkbook.Worksheets(1).HPageBreaks.Add Before:=ThisWorkbook.Worksheets(1).Cells(5, 1)
ThisWorkbook.Worksheets(1).HPageBreaks.Add Before:=ThisWorkbook.Worksheets(1).Cells(30, 1)
ThisWorkbook.Worksheets(1).HPageBreaks.Add Before:=ThisWorkbook.Worksheets(1).Cells(51, 1)
ThisWorkbook.Worksheets(1).PageSetup.Zoom = 60
ThisWorkbook.Worksheets(1).PageSetup.CenterHorizontally = False
Application.PrintCommunication = True
ThisWorkbook.Worksheets(1).PageSetup.LeftFooter = "Lebensmittel"
' -- Firmenname in der Fußzeile
End Sub