Zähler für Search & Replace (Suchen und Ersetzen)

Hallo liebe Excel-Experten,
Ich habe ein Macro geschrieben, welches Ersetzungen laut einer Liste vornimmt. D.H. in der einen Spalte steht, was ersetzt werden soll und in der anderen Spalte steht womit es ersetzt werden soll.
Leider funktioniert in deisem Macro mein Zähler nicht, der angeben soll wie oft eine Ersetzung vorgenommen worden ist.
Hier mein Code:

Private Sub replace_Click()
'sucht in ausgewähler Datei jeweils die Einträge aus
'suchArray und ersetzt mit ersetzArray
Dim suchArray()
Dim ersetzArray()
Dim k, p As Long
Dim WS As Worksheet
Dim counter As Integer

counter = 0
arbeit.Visible = True 'arbeit ist ein bild

'suchArray füllen
For x = 2 To 9999
If IsEmpty(„D“ & x) Then
GoTo eArray
Else
ReDim Preserve suchArray(x - 1)
suchArray(x - 1) = Range(„D“ & x)
End If
Next x

'ersetzArray füllen
eArray:
For x = 2 To 9999
If IsEmpty(„E“ & x) Then
GoTo ersetzen
Else
ReDim Preserve ersetzArray(x - 1)
ersetzArray(x - 1) = Range(„E“ & x)
End If
Next x

'auf jedem sheet Änderungen vornehmen
ersetzen:
On Error GoTo ausgang
Workbooks.Open Filename:=fn 'fn ist eine globale Variable (wird
'an anderer Stelle mit Inhalt gefüllt)

For Each WS In Worksheets

For k = LBound(suchArray) To UBound(suchArray)
Call WS.UsedRange.replace(suchArray(k), ersetzArray(k), xlWhole, , False)
If replace = True Then
counter = counter + 1
End If
Next k

Next

MsgBox (counter)
arbeit.Visible = False

ausgang:
If arbeit.Visible = True Then
meldung.Text = „ERROR - file not found“
End If
End Sub

Ich hoffe jemand kann mir helfen… Ich verzweifle!
Danke
Euer Daniel

Hallo,

If replace = True Then
counter = counter + 1
End If

replace ist bei Dir wahrscheinlich eine public-Variable??? Jedenfalls ist replace auch der Name einer VBA-Funktion, die Argumente benötigt und liefert in jedem Fall kein True, sondern einen string oder einen Fehler. Wahrscheinlich verzweigt Dein Makro hier immer zur Fehlerbehandlung und erreicht den counter nie.

Benenne die Variable doch um, z.B. boolReplace, und arbeite doch generell mit Option explicit, um solche Fehler zu vermeiden.

Gruß, Bernd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo, danke für die Antwort!
replace ist bei mir keine Variable.
Ich wollte die Funktion ansprechen, nach dem Schema:
Wenn etwas ausgetauscht wurde, dann zähle counter hoch.
Die Ersetzung funktioniert, nur der Zähler bleibt trotzdem immer auf 0.
Es wird bis auf die IF-Bedingung mit „replace = true“ der Code richtig durchlaufen.

Bitte kann mir jemand helfen, ich verzweifle…
Danke
Daniel

Hallo,

dann setze counter doch mal als public.

Gruß, Bernd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]