Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Text ersetzen

Text ersetzen
05.06.2008 21:48:22
Jonathan
Guten Abend (erneut),
ich stehe vor dem "ersten" Abschluss meines Projektes (danach noch ein paar Feinheiten, Fehler ausbügeln, etc.), muss allerdings noch eine Sache programmieren:
In einer Zelle (angenommen A1) steht ein längerer Text mit vorgegebenen "Platzhaltern". Z.B. [Feld-Name], [Feld-Note]....) , welche ersetzt werden sollen. Die Daten hole ich auch einem Sheet mit dem Namen Cache. Ich benötige erstmal nur ein kleines Script, welches ich dann versuche anzupassen (welches bestimmte Begriffe in einem Text ersetzt).
Wie wäre es am sinnvollsten? Den Text in eine Variable einlesen, ersetzen und ausgeben, oder direkt in der Zelle ersetzen?
Danke Euch Leute!
Jonathan

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wenn du vbFkt Replace verwendest, ist das...
05.06.2008 22:08:05
Luc:-?
...beinahe schnurz, Jonathan,
es kommt dann evtl nur auf die Datenmenge an.
Gruß Luc :-?

AW: Wenn du vbFkt Replace verwendest, ist das...
05.06.2008 22:32:41
Jonathan
Hey,
replace scheint das Passende zu sein. Hier mal mein bisheriger Code zum ersten Test.

Sub ersetzten()
Dim Text As String
Text = Sheets("Tabelle1").Range("A1").Value
With Sheets("Tabelle1")
For i = 1 To .Cells(.Rows.Count, 8).End(xlUp).Row
Text = Replace(Text, .Cells(i, 8).Value, .Cells(i, 9).Value)
Next
End With
MsgBox Text
End Sub


Grüße,
Jonathan

Hmm, sehr schön! Du ersetzt also den...
05.06.2008 23:13:30
Luc:-?
...Teil von Text aus Zelle A1, Jonathan,
der mit dem Inhalt der 1. von 2 benachbarten Zellen einer Zeile übereinstimmt, nacheinander durch den Inhalt der Nachbarzelle und zeigst das dann an...
Als Test ganz nett und wohl auch richtig, aber was soll daraus wdn? Ist da evtl noch ein Problem (antworterheischende Frage) zu erwarten...? ;-)
Wenn du nämlich alle Platzhalter auf einmal ersetzen willst, musst du Replace mehrfach anwenden - entweder in mehreren CodeZeilen nacheinander oder alle auf einmal in einer Zeile [Replace(Replace(Replace(...)))]. Wenn Platzhalter und Ersetzungstexte so schön regulär (wie in deinem Code vorausgesetzt) in einer Tabelle stehen, ist natürlich auch deine zyklische Lösung sinnvoll!
Gruß Luc :-?

Anzeige
AW: Hmm, sehr schön! Du ersetzt also den...
06.06.2008 00:23:00
Jonathan
Hey,
ich denke, dass es mit Sicherheit noch eine besser und schönere Lösung gibt - allerdings ist diese für mich logisch und nachvollziehbar.
Die Daten, welche zu ersetzen sind, stehen alle - leider teilweise an variablen Stellen - im Sheet Cache.
Ich habe jetzt angefangen, mit einer Schleife alle Daten schön zu ordnen (in einer Spalte untereinander) und danch mit einer Replace Funktion zu ersetzen. Das funktioniert soweit auch ganz gut!
Nach deiner fragestellung zu urteilen, gehe ich davon aus, dass es noch einen weiteren Lösungsansatz gibt, den du mir bestimmt gerne verratest?
Jonathan

Anzeige
Nee, nicht nötig! Wenn du das Alles jetzt...
06.06.2008 01:02:00
Luc:-?
...so schön geordnet hast, Jonathan,
mach es auch so! In praxi hat man mal dies und mal das zu ersetzen, da macht man das oft "operativ". Alternativen wären höchstens Platzhalter und Ersetzungen auf einem Extrablatt zu haben bzw diese gleich am Anfang des Pgms als String-Konstanten oder als Array-Variable bzw Variablen-Array zu deklarieren. In letzteres könntest du natürlich auch "vom Blatt" einlesen. Auch aus Konstanten könnte man letztlich ein Array "fertigen" (mit Split)...
Aber das ist alles Wurst! Hptsache es fkt gut und b.Bedarf auch schnell!
Gute Nacht!
Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige