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-Key: 237095

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

Printed on: April 19, 2024 at 21:04 o'clock

Member: hcfel1
hcfel1 May 04, 2014 updated at 01:33:02 (UTC)
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 ?
Member: minimin
minimin May 04, 2014 at 21:42:06 (UTC)
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.
Member: hcfel1
hcfel1 May 04, 2014 at 21:50:20 (UTC)
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...
Member: colinardo
colinardo May 05, 2014 updated at 09:44:05 (UTC)
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
Member: minimin
minimin May 07, 2014 at 20:23:02 (UTC)
Goto Top
Hallo Uwe,

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

Viele Grüße

Minimin