Excel - Suchen und Ersetzen in verschiedenen Dateien
Hallo an ALLE
Ausgangslage.
- Einige Hundert Excel-Dateien in verschiedenen Ordnern in einem gemeinsamen Überordner
- Dateinamen immer unterschiedlich
- Tabellen immer gleich aufgebaut, z. Bsp: Anschrift Straße in Zelle " E20 " und Anrede in Zelle " G30 "
Derzeitiger Zellinhalt in verschiedenen Schreibweisen
" G30 " Hr. ; Herr; Fr.; Frau
" E20 " Münchner Str. ; Münchner Straße ; Hauptstr. ; Hauptstraße; xxxx Str. ; xxxxstr.
Aufgabe:
In allen Zellen " G30 " soll immer Herr und Frau ausgeschrieben sein
Ersetzen von Hr. ; Hr ; Fr. ; Fr ; durch Herr oder Frau
In allen Zellen " E20 " soll Straße immer ausgeschrieben sein
Ersetzen von xxx Str. ; xxx Str ; xxxxstr. ; xxxstr ; in xxx Straße und xxxstraße
Es soll somit die Funktion "Suchen und Ersetzen" auf mehrere Dateien erweitert werden
Es kann in allen Zellen gesucht und ersetzt werden, besser wäre es aber nur genau in bestimmten Zellen zu ersetzen (G30)
Hat jemand hierzu eine Lösung
Vielen Dank im Voraus
Ausgangslage.
- Einige Hundert Excel-Dateien in verschiedenen Ordnern in einem gemeinsamen Überordner
- Dateinamen immer unterschiedlich
- Tabellen immer gleich aufgebaut, z. Bsp: Anschrift Straße in Zelle " E20 " und Anrede in Zelle " G30 "
Derzeitiger Zellinhalt in verschiedenen Schreibweisen
" G30 " Hr. ; Herr; Fr.; Frau
" E20 " Münchner Str. ; Münchner Straße ; Hauptstr. ; Hauptstraße; xxxx Str. ; xxxxstr.
Aufgabe:
In allen Zellen " G30 " soll immer Herr und Frau ausgeschrieben sein
Ersetzen von Hr. ; Hr ; Fr. ; Fr ; durch Herr oder Frau
In allen Zellen " E20 " soll Straße immer ausgeschrieben sein
Ersetzen von xxx Str. ; xxx Str ; xxxxstr. ; xxxstr ; in xxx Straße und xxxstraße
Es soll somit die Funktion "Suchen und Ersetzen" auf mehrere Dateien erweitert werden
Es kann in allen Zellen gesucht und ersetzt werden, besser wäre es aber nur genau in bestimmten Zellen zu ersetzen (G30)
Hat jemand hierzu eine Lösung
Vielen Dank im Voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 169016
Url: https://administrator.de/forum/excel-suchen-und-ersetzen-in-verschiedenen-dateien-169016.html
Ausgedruckt am: 17.05.2025 um 07:05 Uhr
4 Kommentare
Neuester Kommentar
Hallo Excel-Starter und willkommen im Forum!
Du könntest es mit folgendem Batch (speichern als Textdatei mit dem Typ ".cmd") versuchen:
Gesucht und bearbeitet werden die Dateien im in Zeile 2 festgelegten Ordner und in dessen Unterordnern.
Die Ersetzung für die Anrede wird für den kompletten Zellinhalt vorgenommen, für die Straße wird immer nur das Ende des in der Zelle enthaltenen Textes berücksichtigt.
Bitte zuerst mit Kopien testen!
Grüße
bastla
Du könntest es mit folgendem Batch (speichern als Textdatei mit dem Typ ".cmd") versuchen:
@echo off & setlocal
set "Ordner=D:\XL"
set "Dateien=*.xls"
set "R=%temp%\ReplaceInXL.vbs"
>%R% echo Set oXL=CreateObject("Excel.Application")
>>%R% echo oXL.Workbooks.Open WScript.Arguments(0)
>>%R% echo Set Anrede=oXL.ActiveSheet.Range("G30")
>>%R% echo Set Strasse=oXL.ActiveSheet.Range("E20")
>>%R% echo If Anrede.Value="Hr" Or Anrede.Value="Hr." Then Anrede.Value="Herr"
>>%R% echo If Anrede.Value="Fr" Or Anrede.Value="Fr." Then Anrede.Value="Frau"
>>%R% echo Von="str" :Nach="straße":If Right(Strasse.Value,Len(Von))=Von Then Strasse.Value=Left(Strasse.Value,Len(Strasse.Value)-Len(Von))^&Nach
>>%R% echo Von="str.":Nach="straße":If Right(Strasse.Value,Len(Von))=Von Then Strasse.Value=Left(Strasse.Value,Len(Strasse.Value)-Len(Von))^&Nach
>>%R% echo Von="Str" :Nach="Straße":If Right(Strasse.Value,Len(Von))=Von Then Strasse.Value=Left(Strasse.Value,Len(Strasse.Value)-Len(Von))^&Nach
>>%R% echo Von="Str.":Nach="Straße":If Right(Strasse.Value,Len(Von))=Von Then Strasse.Value=Left(Strasse.Value,Len(Strasse.Value)-Len(Von))^&Nach
>>%R% echo oXL.ActiveWorkbook.Close True
>>%R% echo oXL.Application.Quit
pushd "%Ordner%"
for /f "delims=" %%i in ('dir /s /b /a-d %Dateien%') do (
echo Bearbeite "%%i"
cscript //nologo %R% "%%i"
)
popd
Die Ersetzung für die Anrede wird für den kompletten Zellinhalt vorgenommen, für die Straße wird immer nur das Ende des in der Zelle enthaltenen Textes berücksichtigt.
Bitte zuerst mit Kopien testen!
Grüße
bastla
Hallo Excel-Starter!
Versuch es damit:
Grüße
bastla
Versuch es damit:
@echo off & setlocal
set "Ordner=D:\XL"
set "Dateien=*.xls"
set "R=%temp%\ReplaceInXL.vbs"
>%R% echo Set oXL=CreateObject("Excel.Application")
>>%R% echo oXL.Workbooks.Open WScript.Arguments(0)
>>%R% echo With oXL.ActiveSheet.Cells:Set Strasse=.Find("str")
>>%R% echo If Not Strasse Is Nothing Then
>>%R% echo firstAddress=Strasse.Address
>>%R% echo Do
>>%R% echo Von="str" :Nach="straße":If Right(Strasse.Value,Len(Von))=Von Then Strasse.Value=Left(Strasse.Value,Len(Strasse.Value)-Len(Von))^&Nach
>>%R% echo Von="str.":Nach="straße":If Right(Strasse.Value,Len(Von))=Von Then Strasse.Value=Left(Strasse.Value,Len(Strasse.Value)-Len(Von))^&Nach
>>%R% echo Von="Str" :Nach="Straße":If Right(Strasse.Value,Len(Von))=Von Then Strasse.Value=Left(Strasse.Value,Len(Strasse.Value)-Len(Von))^&Nach
>>%R% echo Von="Str.":Nach="Straße":If Right(Strasse.Value,Len(Von))=Von Then Strasse.Value=Left(Strasse.Value,Len(Strasse.Value)-Len(Von))^&Nach
>>%R% echo Set Strasse=.FindNext(Strasse)
>>%R% echo Loop While Not Strasse Is Nothing And Strasse.Address^<^>firstAddress
>>%R% echo End If
>>%R% echo End With
>>%R% echo oXL.ActiveWorkbook.Close True
>>%R% echo oXL.Application.Quit
pushd "%Ordner%"
for /f "delims=" %%i in ('dir /s /b /a-d %Dateien%') do (
echo Bearbeite "%%i"
cscript //nologo %R% "%%i"
)
popd
bastla