Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
896to900
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
896to900
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Begriffe ersetrzen die 2.

Begriffe ersetrzen die 2.
15.08.2007 14:33:00
Pascal
Hallo zusammen,
ich möchte in einer Liste via Makro mehrere Begriffe ersetzen.
Dazu möchte ich eine Zusätzliche Übersicht anlegen, in der steht, wie die einzelnen Begriffe verschlüsselt sein sollen.
Beispiel:
vorher: ...................... nachher:
Baum.......................... Zeile1
Auto............................ Zeile2
Haus........................... Zeile3
...
...
Boot............................ Zeile30
Ich habe mir überlegt dieses Makro einfach über den Rekorder aufzunehmen, allerdings müpsste ich die Ersetzungen alle manuell durchführen.
Da es möglich ist, dass die Liste ergänzt wird, möchte ich eine wie oben beschriebne Legende als Grundlage nutzen.
Mittlerweile bin ich dank der Hilfevon ede zu folgendem Code gekommen:

Sub umsetzen()
lz = Tabelle1.Cells(65536, 1).End(xlUp).Row
lz2 = Tabelle2.Cells(65536, 1).End(xlUp).Row
zs = 1  '
For i = 1 To lz
For x = 1 To lz2
If Tabelle2.Cells(x, 1) = Left(Tabelle1.Cells(i, 1), Len(Tabelle2.Cells(x, 1))) Then
'das alte abtrennen
Tabelle1.Cells(i, zs) = Mid(Tabelle1.Cells(i, 1), Len(Tabelle2.Cells(x, 1)) + 1)
' das neue hinzu
Tabelle1.Cells(i, zs) = Tabelle2.Cells(x, 2) & Tabelle1.Cells(i, zs)
End If
Next x
Next i
End Sub


es liegt hier eine Referenzliste auf dem 2. Tabellenblatt vor, mit der die tatsächliche Liste auf dem ersten Tabellenblatt abgeglichen werden kann.
Funktioniert soweit auch ganz gut, allerdings habe ich noch folgendes Problem:
Wenn ich die Ersetzung durchführe und die Begriffe durch Leerzeichen getrennt sind, dann prüft Excel irgendwie nur das erste Wort!
Also wenn ich zum Beispiel in der Liste:

Baum
Baum Haus
Baum Krone

mit den Definitionen
Zeile1
Zeile2
Zeile3

habe, dann bekomme ich als Ergebnis
Zeile1
Zeile1 Haus
Zeile1 Krone

kann ich das irgendwie umgehen?
Grüße
Pascal

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Begriffe ersetrzen die 2.
15.08.2007 17:03:00
fcs
Hallo Pascal,
sortiere die beiden Spalten der Referenzliste absteigend ( Z --> A ) nach der 1. Spalte, dann werden zuerst die langen, mehrwortigen Begriffe ersetzt.
Hoffe das hilft bei allen Varianten, die du ersetzen willst.
Gruß
Franz

AW: Begriffe ersetrzen die 2.-Alternative
15.08.2007 17:07:00
fcs
Hallo Pascal,
du kannst die Referenzliste auch aufsteigend sortieren, und die Prozedur wie folgt anpassen:
Gruß
Franz

Sub umsetzen()
lz = Tabelle1.Cells(65536, 1).End(xlUp).Row
lz2 = Tabelle2.Cells(65536, 1).End(xlUp).Row
zs = 1  '
For i = 1 To lz
For x = lz2 To 1 Step -1
If Tabelle2.Cells(x, 1) = Left(Tabelle1.Cells(i, 1), Len(Tabelle2.Cells(x, 1)))  _
Then
'das alte abtrennen
Tabelle1.Cells(i, zs) = Mid(Tabelle1.Cells(i, 1), Len(Tabelle2.Cells(x, 1)) + 1) _
' das neue hinzu
Tabelle1.Cells(i, zs) = Tabelle2.Cells(x, 2) & Tabelle1.Cells(i, zs)
End If
Next x
Next i
End Sub


Anzeige
AW: Begriffe ersetrzen die 2.-Alternative
16.08.2007 09:32:44
Pascal
Hallo fcs,
danke für die Antwort.
Das absteigende Sortieren klappt im Grunde schon ganz gut, ABER:
gehen wir davon aus, die Referenzliste schaut nach der Sortierung wie folgt aus

Auto...Zeile1
Baum...Zeile2
Haus...Zeile3
Tannen Baum...Zeile4

Dann habe ich nach der Ersetung folgendes Problem:
Dadurch, dass Baum in der Liste vor Tannen Baum steht, nimmt das Makro die Ersetzungen in der Liste wie folgt vor:
Zeile1
Zeile2
Zeile3
Tannen Zeile2
Gibt es vielleicht eine Möglichkeit, dass erst die gesamte Liste auf alle eventualitäten geüprüft wird, bevor die Ersetzungen vorgenommen werden?
Gruß
Pascal

Anzeige
AW: Begriffe ersetrzen die 2.-Alternative
16.08.2007 12:22:21
ede
hallo nochmal,
selbt wenn man mehrere findet, duch was soll ersetz werden?
habe das ganze nochmal nachvollzogen. wenn du die referenzliste sortierst nach
1. der länge der zeichenkette-abwärts über hilfsspalte(länge(a1)
2. nach spalte a- abwärts,
dann sollte es richtig funktionieren
ansonsten stell ein beispiel ab mit vorher, nachher und referenztabelle
gruss

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige