'Erstellt/getestet unter Excel 2010
Sub Seitenwechsel_setzen()
Call SeitenwechselAnalysen(wks:=ActiveSheet)
End Sub
Sub SeitenwechselAnalysen(wks As Worksheet)
Dim Zeile As Long
Dim Zeile_1 As Long, Zeile_2 As Long, Zeile_L As Long, Zeile_PB As Long
Dim strTest As String
strTest = "Analyse" 'eindeutiger Textanfang in Zelle in Spalte A bei jeder neuen _
Analyse, oberhalb der Zelle ist immer eine leere Zelle
With wks
.ResetAllPageBreaks
'letzte benutzte Zeile im Blatt
Zeile_L = .UsedRange.Row + .UsedRange.Rows.Count - 1
For Zeile = 1 To Zeile_L
'1. Analyse finden-Zelle in Zeile ist leer, darunter ist der Test-Text enthalten
If .Cells(Zeile, 1).Text = "" _
And Left(.Cells(Zeile, 1).Text, Len(strTest)) = strTest Then
Zeile_1 = Zeile
End If
Do
Zeile = Zeile + 1
'Zeile eines automatischen Seitenwechsels ggf. merken
If .Cells(Zeile, 1).EntireRow.PageBreak = xlPageBreakAutomatic Then
Zeile_PB = Zeile
End If
'Prüfen, ob weitere Analyse beginnt oder letzte Zeile erreicht ist
If (.Cells(Zeile, 1).Text = "" _
And Left(.Cells(Zeile + 1, 1).Text, Len(strTest)) = strTest) _
Or Zeile = Zeile_L Then
Zeile_2 = Zeile 'Zeile der nächsten Analys merken
If Zeile_PB <> 0 And Zeile_PB <> Zeile_2 Then '--> Seitenwechsel innerhalb Analyse
.Cells(Zeile_1, 1).PageBreak = xlPageBreakManual
End If
Zeile_1 = Zeile_2
Zeile_PB = 0
Zeile_2 = 0
If Zeile >= Zeile_L Then Exit For
End If
Loop
Next
End With
End Sub
'Erstellt/getestet unter Excel 2010
Sub Seitenwechsel_setzen()
Call SeitenwechselAnalysen(wks:=ActiveSheet)
End Sub
Sub SeitenwechselAnalysen(wks As Worksheet)
Dim Zeile As Long
Dim Zeile_1 As Long, Zeile_2 As Long, Zeile_L As Long, Zeile_PB As Long
Dim strTest As String
strTest = "Analyse" 'eindeutiger Textanfang in Zelle in Spalte A bei jeder neuen _
Analyse, oberhalb der Zelle ist immer eine leere Zelle
With wks
.ResetAllPageBreaks
'letzte benutzte Zeile im Blatt
Zeile_L = .UsedRange.Row + .UsedRange.Rows.Count - 1
For Zeile = 1 To Zeile_L
'1. Analyse finden-Zelle in Zeile ist leer, darunter ist der Test-Text enthalten
If .Cells(Zeile, 1).Text = "" _
And Left(.Cells(Zeile, 1).Text, Len(strTest)) = strTest Then
Zeile_1 = Zeile
End If
Do
Zeile = Zeile + 1
'Zeile eines automatischen Seitenwechsels ggf. merken
If .Cells(Zeile, 1).EntireRow.PageBreak = xlPageBreakAutomatic Then
Zeile_PB = Zeile
End If
'Prüfen, ob weitere Analyse beginnt oder letzte Zeile erreicht ist
If (.Cells(Zeile, 1).Text = "" _
And Left(.Cells(Zeile + 1, 1).Text, Len(strTest)) = strTest) _
Or Zeile = Zeile_L Then
Zeile_2 = Zeile 'Zeile der nächsten Analys merken
If Zeile_PB <> 0 And Zeile_PB <> Zeile_2 Then '--> Seitenwechsel innerhalb Analyse
.Cells(Zeile_1, 1).PageBreak = xlPageBreakManual
End If
Zeile_1 = Zeile_2
Zeile_PB = 0
Zeile_2 = 0
If Zeile >= Zeile_L Then Exit For
End If
Loop
Next
End With
End Sub