herzlichen Dank für deine Hilfe. Was du als „primitiv“ bezeichnest, war eigentlich genau das, was ich suchte.
Aber jetzt habe ich ein anderes Problem.
Starte ich mit STRG+H die Funktion „suchen/ersetzen durch“, dann klappt das wunderbar, und zuletzt bekomme ich wunschgemäß angezeigt, wie oft etwas ersetzt wurde.
Will ich dasselbe mit einem Makro bewirken, läuft dieses ohne abschließende „Erfolgsmeldung“ durch und zeigt also nichts an. Dann - leider - nützt auch die MSG-Box mit „Weiter …“ nichts, obwohl diese brav aufpoppt. Ich habe sie an mehreren Stellen versuchweise einkopiert und zuletzt mit Debuggen/Einzelschrift gesehen, dass das Makro wie gesagt in der Tag gar keine Meldung ausgibt.
Starte ich mit STRG+H die Funktion „suchen/ersetzen durch“,
dann klappt das wunderbar, und zuletzt bekomme ich wunschgemäß
angezeigt, wie oft etwas ersetzt wurde.
Will ich dasselbe mit einem Makro bewirken, läuft dieses ohne
abschließende „Erfolgsmeldung“ durch und zeigt also nichts an.
Grüezi Ludwig
Wenn ich in Word 2010 (aber das war auch schon in früheren Versionen so) per Makro Suchen/Ersetzen durchführe, erscheint am Ende in der Statusleiste (ganz unten links) für einen Moment die Meldung „x Aenderungen.“ Bei Dir nicht?
Ich habe hier ein Makro gebastelt (mit Google’s Hilfe). Mit diesem Makro wird beim ersten Durchlauf der Suchtext gezählt; beim zweiten Durchlauf wird der Suchtext ersetzt. Dieses Makro funktioniert bei mir nur für das ganze Dokument richtig. Deshalb am Anfang der Befehl „Selection.HomeKey Unit:=wdStory“
Sub Makro1()
z = 0: ingAnzahl = 0
start:
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Franz"
.Replacement.Text = "Hans"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
If z = 0 Then
Do While Selection.Find.Execute
ingAnzahl = ingAnzahl + 1
Loop
MsgBox ingAnzahl & " Aenderungen"
z = 1
GoTo start
Else
Selection.Find.Execute Replace:=wdReplaceAll
End If
End Sub
Ich hoffe, das hilft Dir einen Schritt weiter, und grüsse herzlich
Niclaus