kevinp
Goto Top

Excel-VBA: Alle Werte einer Spalte in einer anderen Suchen

Hallo,

ich hänge jetzt schon seit Tagen dran und komm nicht zu Rande.

Ich versuche jeden Wert eines Tabellenblattes (Spalte B bis Zeile 32) in einer anderen Splate (D) des gleichen Tabellenblattes zu finden. In der Nachbarzelle (Spalte E) steht dann der Wert, den ich in die Ursprungszelle (Spalte B Zeile ?) übergeben möchte. Es kann auch sein, dass eine Zeile (in Spalte B) leer ist, die nächste jedoch wieder Daten zum Suchen enthällt.

Beispiel:

Spalte B Spalte D Spalte E
C A Erster Wert
C B Zweiter Wert
A C Dritter Wert
... ... ...

Gewünschtes Ergebnis:
Spalte B Spalte D Spalte E
Dritter Wert A Erster Wert
Dritter Wert B Zweiter Wert
Erster Wert C Dritter Wert
... ... ...


Hat Jemand eine Idee?

Content-Key: 268429

Url: https://administrator.de/contentid/268429

Ausgedruckt am: 29.03.2024 um 05:03 Uhr

Mitglied: 114757
114757 05.04.2015 aktualisiert um 17:48:17 Uhr
Goto Top
Moin,
nicht schon wieder....
SVERWEIS() ist dein Stichwort.... Die Frage kommt hier jeden Tag... einfach mal die Forumssuche nach SVERWEIS anwerfen!
Mit Makro:

Gruß jodel32
Mitglied: KevinP
KevinP 05.04.2015 um 17:56:13 Uhr
Goto Top
Danke für den Hinweis. Aber ich versuche es mit VBA zu lösen. Ich kann verstehen, das hier scheinbar "schon wieder" diese Frage gestellt wird. Ich habe mich die letzten Tage durch dieses und andere Foren gewühlt aber keinen Ansatz zur Lösung meines Problems gefunden.

Danke für die Links. Ich bekomme dden Quellcode (die Seiten hatte ich schon gesehen) nicht an meine Bedürfnisse angepasst.

Sorry, bin dankbar für jeden Hilfsansatz...
Mitglied: 114757
Lösung 114757 05.04.2015, aktualisiert am 06.04.2015 um 02:44:52 Uhr
Goto Top
Zitat von @KevinP:
Ich bekomme dden Quellcode (die Seiten hatte ich schon gesehen) nicht an meine Bedürfnisse angepasst.
Ist eigentlich wie auf dem Silbertablett präsentiert, na egal Anpassung ist schnell gemacht ...
http://we.tl/KOGRhWRqIB
Sub Werte_Zuordnen()
    Dim dic As Object, cell As Range, rngData as Range
    'Dictionary Object das die Daten aus Spalten D und E enthält  
    Set dic = CreateObject("Scripting.Dictionary")  
    With ActiveSheet
        'Bereich in dem die Suchdaten stehen die ersetzt werden sollen  
        Set rngData = .Range("D2:D" & .Cells(Rows.Count, "D").End(xlUp).Row)  
        'Dictionary mit den Werten füllen  
        For Each cell In rngData
            dic.Add cell.Value, cell.Offset(0, 1).Value
        Next
        'Werte in Spalte B zuordnen  
        For Each cell In .Range("B2:B" & .Cells(Rows.Count, "B").End(xlUp).Row)  
            If cell.Value <> "" And dic.Exists(cell.Value) Then  
                cell.Value = dic.Item(cell.Value)
            End If
        Next
    End With
End Sub
Mitglied: KevinP
KevinP 06.04.2015 aktualisiert um 02:46:42 Uhr
Goto Top
Danke! Das hab ich so nicht hinbekommen. Eigentlich wirklich einfach, wenn man sich nicht im Kreis dreht,,,

Habe daraufhin direkt weiterprogrammiert und bin nun fertig.

DANKE nochmals für die Hilfe!