wenn das eine einmalige Aktion ist, dann geht auch folgender Formelworkaround.
1. Dupliziere Spalte A in Spalte E mit Formel in E1: =A1 und so weit runterkopieren, wie es Einträge in Spalte A gibt (in Deinem Beispiel bis Zeile 9 - aber in Deiner realen Mappe dann eben weiter runter)
2. In F1 schreibst Du nun die Formel =WECHSELN(E1;INDEX($C:$C;SPALTEN($A:A));INDEX($D:$D;SPALTEN($A:A))) Kopiere sie ebenfalls so weit runter, wie es Einträge in Spalte A gibt. Zusätzlich kopierst Du sie so weit nach rechts, wie es gewünschte Änderungen in Spalten C und D gibt (in Deinem Beispiel sind es 3 - da würde es bis Spalte H reichen - aber in Deiner realen Mappe sind es sicher mehr).
Deine Wunschergebnisse stehen dann in der ganz rechten Spalte. Im Beispiel wäre das - wie gesagt - Spalte H. Diese Einträge kannst Du dann kopieren und als reine Werte wieder einsetzen.
GROSS2 / KLEIN etc. kann man natürlich bei Bedarf noch ergänzen.
Option Explicit Public Sub Main() Dim strArrQ As Variant Dim strArrU As Variant Dim strRange As String Dim lngTMP As Long ' Range A1:A9 anpassen!!!!!!!!!!!! strRange = "A1:A9" ' Die Begriffe die bereinigt werden sollen With ThisWorkbook.Worksheets("Tabelle1") ' Der Tabellenblattname gegebenenfalls anpassen!!!!!!!!!!! strArrQ = .Range("C1:D3") ' Hier stehen die Suchen(Spalte C)/Ersetzen(Spalte D) - Begriffe anpassen!!!!!!!!!!!!! For lngTMP = 1 To UBound(strArrQ) .Range(strRange).Replace What:=(strArrQ(lngTMP, 1)), Replacement:=strArrQ(lngTMP, 2), LookAt:=xlPart Next lngTMP strArrU = .Range(strRange) For lngTMP = 1 To UBound(strArrU) strArrU(lngTMP, 1) = Application.Proper(strArrU(lngTMP, 1)) Next lngTMP .Range(strRange) = strArrU End With End Sub
Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:1 Nutzer sagt Danke an Gast für diesen Beitrag 28 • MichaelH