Word VBA Schleife S&R - Bis Dateiende?

Guten Tag,

ich möchte mir ein Word 2003 Makro bauen welches mir Zeitraubende Suchen und Ersetzen klickerei einspart. Es soll von einem bestimmten Word die Formatierung gelöscht werden.

Mein Problem ist das dieses Suchen und ersetzen nacheinander solange durchgeführt werden soll bis das ende der Datei erreich wird. Ich habe es schon mit ein „Do“+„Loop“ Schleife hinbekommen das es bis zu Ende der Datei durchläuft aber dann wieder von Vorne beginnt.

Nun weiß ich nicht genau wie ich die Schleife so umbauen kann das am ende der geöffneten Word die Schleife beendet wird.

Meine Akutelles Makro:
Do
Selection.Find.ClearFormatting
With Selection.Find
.Text = „acdbMtext“
.Replacement.Text = „“
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute
Selection.Find.ClearFormatting
With Selection.Find
.Text = „^0013[][]1^0013“
.Replacement.Text = „“
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchFuzzy = False
.MatchWildcards = True
End With
Selection.Find.Execute
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.ClearFormatting
Selection.ClearFormatting
Selection.EndKey Unit:=wdLine
Loop
End Sub

Ich habe auch schon probiert die „Do“ Anweisung wie folgt zu erstellen:
Do While ActiveDocument.Range.End = False

Leider funktioniert dann garnichts mehr. Habt Ihr evtl eine Idee wie ich diesem Problem mächtig werde?

Vielen Dank schonmal!

Moin, Traker,

Schleifen sind ganz einfach, wenn die Suche ausgelagert wird. Deinen Code habe ich jetzt nicht duchgesehen, ist mir zu mühsam :smile:

Codebeispiel:

Sub Finalqualifikation\_Gruppenkopf()

 Selection.Find.ClearFormatting
 ' Ersten Kopf suchen
 Call SucheGruppe("")
 While rc
 ' Zeilenvorschub \> Paragraph
 Selection.HomeKey Unit:=wdLine
 Call Z2P
 Selection.HomeKey Unit:=wdLine
 Selection.EndKey Unit:=wdLine, Extend:=wdExtend
 ' Formatieren
 Selection.Style = ActiveDocument.Styles("Pokaldisziplin")
 Selection.EndKey Unit:=wdLine
 ' Nächsten Kopf suchen
 Call SucheGruppe("")
 Wend
End Sub

Sub SucheGruppe(Suchtext As String)

 Selection.Find.ClearFormatting
 With Selection.Find
 .Text = Suchtext
 .Replacement.Text = ""
 .Forward = True
 .Wrap = wdFindStop
 .Format = False
 .MatchCase = False
 .MatchWholeWord = False
 .MatchWildcards = False
 .MatchSoundsLike = False
 .MatchAllWordForms = False
 End With
 rc = Selection.Find.Execute
End Sub

Wie man leicht sieht: auf das „while rc“ kommt es an. In Z2P werden die Änderungen durchgeführt, das ist für Deine Frage wohl nicht so interessant.

Gruß Ralf