hi,
wenn du ohnehin eine Spalte für die Beschriftung hast, wäre es doch eine Idee, nach dem Seitenumbruch zu suchen.
Sub Markierungen()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim LastRow As Long
LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
header_rows = 3
names_col = "A"
label_col = "B"
von = Left(Cells(header_rows + 1, names_col).Value, 3)
For i = header_rows + 2 To LastRow
If Rows(i).PageBreak <> xlPageBreakNone Then
Cells(i, label_col).Value = von & " - " & Left(Cells(i, names_col).Value, 3)
von = Left(Cells(i + 1, names_col).Value, 3)
Else Cells(i, label_col).ClearContents
End If
Next
End Sub
Da ich es nicht testen kann, weil ich kein Excel habe, wird man wohl erstmal Fehler bereinigen müssen.
Aber so vom Ablauf her könnte das deine jetzige Arbeit ersetzen, ohne bei Drucken alle Seiten einzeln zu bestätigen
Unbedingt die Spaltennamen anpassen, ob A und B stimmt, bezweifle ich auch.
Es wird vorausgesetzt, dass es für die Beschriftung eine eigene Spalte gibt.
grüße
lipi