Grundsätzlich geht es um das Thema "Ersetzen von Zellinhalten per VBA" - jedoch nur, und das ist jetzt die Krux, nur von einem Teil des Zellinhaltes.
Anbei ist eine Beispieldatei (das Original ist bei weitem größer) https://www.herber.de/bbs/user/147865.xlsx
Mit Hilfe des Rekorders konnte der folgende Code erzeugt werden, der auch wunderbar funktioniert:
ActiveSheet.Range("B1:N38").Select
Selection.Replace What:="*DD*", Replacement:="DD", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Mein Problem ist nun das "*DD*" in der zweiten Zeile.
Ersetzt werden soll nämlich nicht "*DD*", sondern das, was auch immer im Zelle A1 bis A38 steht.
Es soll also für alle Einträge in Spalte A die Tabelle B1:N38 durchsucht werden und dann das "*Treffer in Spalte A* durch ein "Treffer in Spalte A" ersetzt werden.
Ist das möglich?
Alternativ müsste ich sonst den oben stehenden Code für 50 mögliche Kombinationen in der richtigen Tabelle erstellen, was dann doch recht deutlich in Richtung "nervig" geht.
Ach ja, aus irgendwelchen, mir völlig unbekannten Gründen, lässt sich in der Originaldatei nicht einfach der ganze Bereich markieren und per Ersetzen-Funktion und dem " " zu "" alle Leerzeichen entfernen. Es funktioniert auf biegen und brechen nicht. Nur mit dem oben stehenden Code konnten bislang wirklich alle von den lästigen Leerzeichen sicher entfernt werden. In der Beispieldatei hier ist bei dem " JS" noch immer so.