PDA

Vollständige Version anzeigen : Vergleichen und ersetzten


Paul26_01
10.04.2012, 08:05
Hallo ihr lieben,


ich habe eine Tabelle "Worksheet" eine Spalte D mit Inhalt diese soll mit Tabelle "Tmp" Spalte A verglichen werden.
Wenn Inhalt Spalte D und Inhalt Spalte A gleich sind soll der Inhalt von Spalte B in Spalte D ersetzt werden.

Ich hoffe ich konnte erklären was ich machen will :p

Dankeschön im vorraus
Gruß
Paul

chris-kaiser
10.04.2012, 08:31
Hallo Paul

Ich hoffe ich konnte erklären was ich machen will
ich kann nur für mich sprechen....
aber ein klares NEIN von mir.

Da du ja schon eine Demodatei hast, warum ist darinnen keine gewünschte Lösung enthalten? Zumindest in der man erkennen kann was da ersetzt werden sollte.

bzw. vielleicht wäre es noch besser wenn du beschreiben würdest für was das ganze gut sein soll. ;)

Warum etwas ersetzen?, damit niemand mehr nachvollziehen kann was einmal dort gestanden ist?

Paul26_01
10.04.2012, 09:20
okay dann hänge ich mal eine weitere Mappe an in der ich nun auch meine "Lösung" mit angehangen habe

Jetzt wäre es hilfreich wenn mir jemand mit einem Makro / Lösungsansatz auf die Sprünge hilft =)

gruß

EarlFred
10.04.2012, 09:41
Hallo Paul,

aus welchem Lehrbuch für ungeeignete Datenstrukturen hast Du das denn entnommen? Das ist ja eine meisterhafte Katastrophe!

Option Explicit
Sub sowas()
Dim c As Range
Dim lngLast As Long
Dim fTemp As Variant, i As Long
Dim vErg As Variant

lngLast = Worksheets("Tmp").Cells(Rows.Count, 1).End(xlUp).Row

With Worksheets("Worksheet")
For Each c In .Range("D4:D" & .Cells(Rows.Count, 4).End(xlUp).Row)
fTemp = Split(c.Value, vbLf)
For i = LBound(fTemp) To UBound(fTemp)
vErg = Application.VLookup(fTemp(i), Worksheets("Tmp").Range("A1:B" & lngLast), 2, 0)
If Not IsError(vErg) Then fTemp(i) = vErg
Next i
c.Value = Join(fTemp, vbLf)
Next c
End With

End Sub

Grüße
EarlFred

Paul26_01
10.04.2012, 10:17
danke für die Antwort ich probiere das ganze gleich mal aus

das war ein Teil aus meinem gesamten Dokument habe nur den Rest drumherum gelöscht
daher das Meisterwerk :p