minimin
Goto Top

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:
e528331e958eec68b7c60d7d07cb6420


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:

55e6c6792a3b9be0b4f444ca32ca556e

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! face-smile

Viele Grüße!

Content-ID: 237095

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

Ausgedruckt am: 25.11.2024 um 21:11 Uhr

hcfel1
hcfel1 04.05.2014 aktualisiert um 03:33:02 Uhr
Goto Top
Erste Tabelle in ein Feld einlesen und dann mit
for 0 to ubound(feld)
if ...

vergleichen...
genug Denkanstoß?

dazu gibts aber bereits eine Funktion
sverweis oder wverweis


wie gut sind deine VBA Kenntnisse ?
minimin
minimin 04.05.2014 um 23:42:06 Uhr
Goto Top
Danke für die Antwort, "sverweis" ist doch nur für eine einzelne Suche da, nicht für die komplette Übertragung auf einem Klick für alle Werte, oder? Wie automatisiere ich das ganze?
Ich habe einen VBA Kurs besucht, aber um es selbst richtig zu schreiben, fehlt es mir an Erfahrung.
hcfel1
hcfel1 04.05.2014 um 23:50:20 Uhr
Goto Top
sverweis kann dann ja "runter gezogen werden" <-- Formel Autovervollständigen

Wenn du es mit VBA als Übung lösen willst, teile mir mit ob du den Ansatz verstanden hast, ansonsten werd ich ausführlicher...
colinardo
colinardo 05.05.2014 aktualisiert um 11:44:05 Uhr
Goto Top
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.
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
minimin
minimin 07.05.2014 um 22:23:02 Uhr
Goto Top
Hallo Uwe,

herzliches Dankeschön !
Es ist eine große Hilfe für mich!

Viele Grüße

Minimin