Replacement-Zähler einbauen? Ersetzungen zählen!
15.02.2007 13:05:00
Daniel
Ich habe ein Macro geschrieben, welches Ersetzungen nach 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. Das Macro sucht nun nach allen möglichen Ersetzungspaaren und ersetzt, wenn eines zutrifft. Die Auswechslungen werden nicht in dem Workbook vorgenommen in dem das Macro steht, sondern in einem anderen Workbook, dessen Dateipfad im laufe des Macros eingelesen wird.
Wenn man die Excel-interne Funktion benutzt wird danach in einer Message Box angegeben wieviele Ersetzungen vorgenommen wurden.
Diese Funktion würde ich in meinem Macro auch gerne einbauen. Ich habe schon viele Versuche gemacht, aber bekomme es einfach nicht hin...
Ich hoffe Ihr könnt mir helfen, ich verzweifle schon.
Vielen Dank!!!
Euer Daniel
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
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 Dateipfad des Workbooks gefüllt, auf dem
'Änderungen vorgenommen werden)
For Each WS In Worksheets
For k = LBound(suchArray) To UBound(suchArray)
Call WS.UsedRange.replace(suchArray(k), ersetzArray(k), xlWhole, , False)
Next k
Next
arbeit.Visible = False
ausgang:
If arbeit.Visible = True Then
meldung.Text = "ERROR - file not found"
End If
End Sub