Einzelnen Beitrag anzeigen
Alt 15.01.2007, 14:59   #2
BeHo
verstorben
 
 
Registriert seit: 11.08.2004
Ort: Woinem
Beiträge: 32.059
Hallo Stefan,

so ganz passt Dein Code nicht zu den Vorgaben.
Du schreibst von Zeilenumbruch oberhalb nach den Zweilevel-Überschriften. Dein Programm fügt dagegen Seitenumbrüche vor den Überschriften ein. Ich nehme an, dass auch dies gemeint ist, weil es doch sinnvoller erscheint.

Dein Fehler liegt im .Execute innerhalb der IF-Abfrage. Damit wird die eigentlich Suche erst im zweiten Schleifendurchlauf der FOR-Schleife durchgeführt und damit ist automatisch die Bedingung schon bei der ersten gefundenen Überschrift2 wahr.

Im folgenden ein etwas verkürzter Code. Zwei Durchläufe sind für diese Aufgabe ja eigentlich nicht nötig.

Code:
y = 0 'Anzahl vorhandener Überschriften 2.Ebene
ya = 0 'Anzahl aller vorgenommenen Seitenumbrüche

    Selection.HomeKey Unit:=wdStory
    With ActiveDocument.Content.Find 'Ermittlung aller vorhandenen Überschriften 2.Ebene
        .ClearFormatting
        .Style = wdStyleHeading2
        Do While .Execute(FindText:="", Forward:=True, Format:=True) = True
            If y > 0 Then
                .Parent.ParagraphFormat.PageBreakBefore = True
                ya = ya + 1
            End If
            y = y + 1
        Loop
    End With
End Sub
Gruß,
Bernd
__________________
.___.
(O,o)
/)__) Meine SUF-Bilder / Island-Bilder
-"-"-██P.S.: Wissenschaft ist keine Meinung.
BeHo ist offline   Mit Zitat antworten