Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

suche ersetzen über mehrere Arbeitsmappen
#1
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
Antworten Top
#2
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 ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • omron2003
Antworten Top
#3
Super danke für die Ausfürliche Erklärung,
so funktioniert es jetzt...

LG omron2003
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste