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
________ Servus
Case
Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:1 Nutzer sagt Danke an Case für diesen Beitrag 28 • MichaelH