Clever-Excel-Forum

Normale Version: Makro erweitern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen zusammen,

ich möchte in meiner Tabelle gern diverse Zeichenfolgen durch andere ersetzen und habe folgendes Makro gefunden (Original = schwarze Schrift)

Sub ZeichenTauschen()
On Error Resume Next
Dim Zelle As Range
Dim SuchenNach As String
Dim ErsetzenDurch As String
SuchenNach = "." xxxxxxxxxxxxxxxxxx
ErsetzenDurch = "," xxxxxxxxxxxxxxxxx
SuchenNach = "y"
ErsetzenDurch = "z"
For Each Zelle In ActiveSheet.UsedRange
 Zelle.Value = Application.Substitute(Zelle.Value, SuchenNach, ErsetzenDurch)
Next Zelle
On Error GoTo 0
End Sub

Da es sich aber um mehrere Zeichenfolgen handelt, die ich durch jeweils andere ersetzen muß weiß ich jetzt nicht genau, ob ich das Makro "nach rechts oder nach unten erweitern muß". (rote und blaue Zeichen sind von mir...) Ich könnte mir vorstellen, daß ich es nach unten um die verschiedenen SuchenNach-ErsetzenDurch-Pärchen erweitern muß, wollte mich aber nochmal rückversichern. Falls das nach rechts geht, bräuchte ich eine kleinen Hinweis, trenne ich einfach nur per ";"?

Besten Dank für Euren kleinen Hinweis.
Eistee für alle!!!!
Gruß
Klaus


ich möchte in meiner Tabelle gern diverse Zeichenfolgen durch andere ersetzen und habe ein Makro gefunden
Zuerst mal hinterfrage ich die Sinnhaftigkeit - wieso nicht einfach mittels Strg+H Suchen und Ersetzen? Oder ist das eine regelmäßige Aufgabe?

Aber so wie du das angehen willst, funktioniert das nicht. Mit jeder weiteren Angabe von Suchen- bzw. Ersetzenbegriffen überschreibst du ja die vorhergehende Variable. Du benötigst also eine Schleife. Die Frage ist nun, wieviele Ersetzungen du hast und wo du die definieren willst. Das kann zB eine Tabelle sein (zB Spalte A Suchbegriff, Spalte B Ersetzungsbegriff). Oder du schreibst verschiedene Variablen, zB so

Code:
SuchenNach1 = "."
ErsetzenNach1 = ","
SuchenNach2 = "x"
ErsetzenNach2 = "y"

Das halte ich aber für keine gute Lösung, ich würde es über eine Hilfstabelle machen. Also, überleg dir das zuvor, bevor man wild drauflos programmiert.
Hallo Berni

vielen Dank für deine schnelle Antwort.

Ja, die Sinnhaftigkeit ist auf jeden Fall gegeben - es sind regelmäßig wiederkehrende Änderungen, zu bearbeiten sind jeweils um die 10 Korrekturen. Also zuviel, um es jedesmal per Hand zu machen (und dabei ggf. noch etwas zu übersehen) und immer noch überschaubar genug, um es einmalig zu programmieren.

Da ich mit einer Vorlage arbeite, in die ich das Makro implementieren will, ist die Arbeit auf jeden Fall die Zeit wert, zumal ich dann - sollte eine neue Fehlerquelle auftauchen, das Makro ja einfach nur um das jeweilige Pärchen erweitern muß.

Insofern wäre die Pärchen1, Pärchen2 usw.-Variante durchaus gangbar für mich. Hört sich jedenfalls einfacher an als eine Hilfstabelle
Das probiere ich gleich mal aus!

Danke nochmal.
PS: keine Angst, ich programmiere da nicht drauflos, das hab ich gar nicht drauf :19:
Viele Grüße
Klaus
Hallo Klaus,

nimm doch einfach die Replace-Methode:
Sub ZeichenTauschen()
Cells.Replace ".", ",", xlPart
Cells.Replace "y", "z", xlPart
'...
End Sub
Gruß Uwe
Hi Uwe,
das sieht noch eine Spur einfacher aus.
Auch das werde ich probieren.
Vielen Dank auch Dir!
Klaus