Clever-Excel-Forum

Normale Version: suche ersetzen über mehrere Arbeitsmappen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Forum

in Tabelle1 A2 habe ich den zu suchenden Wert und in B2 den zu ersetzenden Wert stehen.
Mit folgendem Code möchte ich nun  die Werte in den ausgewählten Arbeitsmappen ersetzen.
Funktioniert so aber leider nicht?
Code:
Sub ersetzenNew()
dateien = Application.GetOpenFilename _
("Excel-Dateien (*.xls; *.xlsx; *.xlsm), *.xls; *.xlsx; *.xlsm", MultiSelect:=True)
Application.ScreenUpdating = False
If IsArray(dateien) Then
For i = 1 To UBound(dateien)
Workbooks.Open dateien(i)
With ActiveWorkbook
For n = 1 To .Sheets.Count
.Sheets(n).Cells.Replace What:=Worksheets("Tabelle1").Range("A2"), _
Replacement:=Worksheets("Tabelle1").Range("B2"), _
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
Next
.Save
.Close
End With
Next
End If
End Sub
Mit diese Code funktioniert es, allerdings muss ich die Werte im Code eintragen...
Code:
dateien = Application.GetOpenFilename _
("Excel-Dateien (*.xls; *.xlsx; *.xlsm), *.xls; *.xlsx; *.xlsm", MultiSelect:=True)
Application.ScreenUpdating = False
If IsArray(dateien) Then
For i = 1 To UBound(dateien)
Workbooks.Open dateien(i)
With ActiveWorkbook
For n = 1 To .Sheets.Count
.Sheets(n).Cells.Replace What:="Suchen", _
Replacement:="Ersetzen", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
Next
.Save
.Close
End With
Next
End If

was habe ich oben falsch gemacht bzw. gibt es eine Lösung für mein Anliegen die Suchen-Ersetzen Werte aus der Tabelle einzulesen.

Besten Dank im Voraus
omron2003
Hallöchen,

mal auf den ersten Blick - logisch, weil Du beim Holen nicht mehr in der Mappe mit dem Code bist.
Könnte im Prinzip so funktionieren

... What:=ThisWorkbook.Worksheets("Tabelle1").Range("A2") ...

usw.

Oder Du packst das am Anfang in Variablen, im Prinzip.

..
Dim Suchen$ 'Falls es Zeichenketten sind
Suchen = Worksheets("Tabelle1").Range("A2")
...
... öffnen usw ...
... What:=Suchen ...
Super danke für die Ausfürliche Erklärung,
so funktioniert es jetzt...

LG omron2003