Obwohl ich nicht eben Excel-Spezialist bin, hat's mich doch gereizt und ich habe was dazu probiert. Vielleicht kannst du darauf aufbauen. Bedenke u.a., dass
- die Makroausführung die Rückgängig-Liste löscht
- eine event. Endsumme nicht die Zwischensummen mit erfassen sollte (also andere Spalten)
- das Makro so nur 1 mal ablaufen sollte (vorab könnte natürlich nach den Zwischensummen gesucht werden und die Zeilen gelöscht)
Sub xxx()
Const ksSpalte As String = "C" ' Die Spalte mit den aufzusummierenden Werten
Dim oBlatt As Worksheet
Dim oHorSeitenumbruch As HPageBreak
Dim oUmbruch As Range
Dim I As Integer, iStart As Integer, iAkt As Integer
Dim sFormel As String
iStart = 1 ' 1. Zeile mit den aufzusummierenden Werten
Set oBlatt = ActiveSheet
With oBlatt
.ResetAllPageBreaks ' nur zum Test
If .HPageBreaks.Count For I = 1 To .HPageBreaks.Count
Set oHorSeitenumbruch = .HPageBreaks(I)
Set oUmbruch = oHorSeitenumbruch.Location ' ergibt 1. Zelle der nächsten Seite
iAkt = oUmbruch.Row - 1
sFormel = "=SUM(" & ksSpalte & iStart & ":" & ksSpalte & iAkt - 1 & ")"
Set oUmbruch = .Rows(iAkt)
oUmbruch.EntireRow.Select
Selection.Insert xlDown
.Cells(iAkt, 1) = "Zwischensumme:"
.Cells(iAkt, 2).Formula = sFormel
iStart = iAkt + 1
Next I
End With
End Sub