Einzelnen Beitrag anzeigen
Alt 14.01.2007, 17:33   #1
Hellraider
 
 
Registriert seit: 31.05.2004
Ort: D-NRW
Beiträge: 2.333
Hilfe zu If Funktion in Word (VBA) benötigt

Ich habe folgende Problemstellung:

Innerhalb eines Word 2003 Dokumentes möchte ich nach jeder Überschrift 2ter Ebene (bis auf die erste Überschrift) einen Zeilenumbruch oberhalb durchführen.

Mein Code sieht bisher so aus:

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

With ActiveDocument.Content.Find 'Ermittlung aller vorhandenen Überschriften 2.Ebene
            .ClearFormatting
            .Style = wdStyleHeading2
                Do While .Execute(FindText:="", Forward:=True, Format:=True) = True
                y = y + 1
                Loop
        End With

Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="1" 'Zu 1. Seite des Dokumentes wechseln
        
        For i = 0 To y
            Selection.Find.ClearFormatting
            Selection.Find.Style = ActiveDocument.Styles(wdStyleHeading2)
                With Selection.Find
                    .Forward = True
                    .Wrap = wdFindContinue
                    .Format = True
                End With
            If i > 0 Then
                Selection.Find.Execute
                With Selection.ParagraphFormat
                   .PageBreakBefore = True
                   ya = ya + 1 'für interne Zählung aller durchgeführten Umbrüche
                End With
            End If
        Next i
Probleme bereit mir derzeit folgender Code-Teil:

Code:
If i > 0 Then
                Selection.Find.Execute
                With Selection.ParagraphFormat
                       .PageBreakBefore = True
                End With
End If
Dieser sollte eigentlich bewirken, das nach der ersten Fundstelle (i=0) eben kein Zeilenumbruch vorgenommen wird, aber irgendwie klappt das nicht. Der Zähler ist beim ersten Durchlauf der If Funktion 0 und überspringt laut Überwachungsanzeige auch die Teile innerhalb der If Funktion (als erstes wird If i > 0 Then ausgeführt und dann wird zu End If gesprungen). Trotzdem wird aber ein Zeilenumbruch durchgeführt, so dass der Fehler eigentlich irgendwo innerhalb der if Funktion selbst zu suchen sein muss, aber wo?

Kann mir da jemand einen Tip geben?
__________________
Gruß aus NRW

Stefan
Hellraider ist offline   Mit Zitat antworten
Sponsored Links