Excel Makro (VBA) Datenübertragung von Tabelle 1 zu Tabelle 2
Hallo alle zusammen,
ich bin noch nicht fortgeschritten im Umgang mit VBA und würde gerne wissen, wie man bestimmte Werte aus einer Tabelle 1 in Tabelle 2 überträgt, wenn man zu bestimmten Zellwerten aus Zahlen in der darauffolgenden Spalte einen mit dem Zellwert verbundenem Text immer als Paar übertragen haben möchte (Bsp siehe folgende Bilder).
Also im Beispiel habe ich bestimmte Zahlen und dementsprechende Texte in Tabelle 1. Siehe Tabelle 1 bzw. erstes Bild:
In Tabelle 2 möchte ich nun in einer anderen Anordnung bestimmten Zahlen die dementsprechenden Texte zuordnen und diese einfügen. Siehe Tabelle 2 bzw. zweites Bild:
Dies bedeutet, dass ich nun gerne neben "123" gerne "Buch" stehen hätte und neben "125" gerne "Computer". Analog dazu die anderen Zahlen-Text-Paare.
Wie gestalte ich nun ein Makro in Visual Basic, damit ich dieses Verfahren mit vielen Zahlen & Texten automatisieren kann?
Ich hoffe, ihr könnt mir helfen!
Viele Grüße!
ich bin noch nicht fortgeschritten im Umgang mit VBA und würde gerne wissen, wie man bestimmte Werte aus einer Tabelle 1 in Tabelle 2 überträgt, wenn man zu bestimmten Zellwerten aus Zahlen in der darauffolgenden Spalte einen mit dem Zellwert verbundenem Text immer als Paar übertragen haben möchte (Bsp siehe folgende Bilder).
Also im Beispiel habe ich bestimmte Zahlen und dementsprechende Texte in Tabelle 1. Siehe Tabelle 1 bzw. erstes Bild:
In Tabelle 2 möchte ich nun in einer anderen Anordnung bestimmten Zahlen die dementsprechenden Texte zuordnen und diese einfügen. Siehe Tabelle 2 bzw. zweites Bild:
Dies bedeutet, dass ich nun gerne neben "123" gerne "Buch" stehen hätte und neben "125" gerne "Computer". Analog dazu die anderen Zahlen-Text-Paare.
Wie gestalte ich nun ein Makro in Visual Basic, damit ich dieses Verfahren mit vielen Zahlen & Texten automatisieren kann?
Ich hoffe, ihr könnt mir helfen!
Viele Grüße!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 237095
Url: https://administrator.de/contentid/237095
Ausgedruckt am: 25.11.2024 um 21:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo minimin, Willkommen im Forum!
Hier ein Beispiel mit VBA zur Übung, auch wenn es mit SVERWEIS (siehe im Demo-Sheet, Tabelle 'SVERWEIS') einfacher zu realisieren ist:
Und hier noch das Demo-Sheet dazu.
Grüße Uwe
Hier ein Beispiel mit VBA zur Übung, auch wenn es mit SVERWEIS (siehe im Demo-Sheet, Tabelle 'SVERWEIS') einfacher zu realisieren ist:
Und hier noch das Demo-Sheet dazu.
Sub Werte_Zuordnen()
Dim dic As Object, wsSource As Worksheet, wsTarget As Worksheet, rngDataStart As Range, rngDataEnd As Range, rngTargetStart As Range, rngTargetEnd As Range, cell As Range
'Dictionary Object das die Zuordnung der Daten der ersten Tabelle enthält
Set dic = CreateObject("Scripting.Dictionary")
'Worksheets referenzieren
Set wsSource = Worksheets(1)
Set wsTarget = Worksheets(2)
'Referenzbereich der ersten Tabelle festlegen
Set rngDataStart = wsSource.Range("A2")
Set rngDataEnd = rngDataStart.End(xlDown)
'Zielbereich der zweiten Tabelle
Set rngTargetStart = wsTarget.Range("A2")
Set rngTargetEnd = wsTarget.Cells(Rows.Count, 1).End(xlUp)
'Dictionary mit den Werten der ersten Tabelle füllen
For Each cell In wsSource.Range(rngDataStart, rngDataEnd)
dic.Add cell.Value, cell.Offset(0, 1).Value
Next
'Zieltabelle durchgehen und Werte zuordnen
For Each cell In wsTarget.Range(rngTargetStart, rngTargetEnd)
' Wenn Wert der Zelle nicht leer ist und der Wert in der Zuordnungstabelle vorhanden ist dann schreibe den Wert in die Zelle daneben
If cell.Value <> "" And dic.Exists(cell.Value) Then
cell.Offset(0, 1).Value = dic.Item(cell.Value)
End If
Next
End Sub
Grüße Uwe