chimred
Goto Top

Excel - VBA - Tabellen kombinieren

Weiß jemand, wie man folgendes Thema, via VBA oder Excel, löst:

Ich habe mehrere hundert Keys, die verschiedene Werte beinhalten. (Bild 1)

Diese Werte referenzieren auf den Inhalt einer weiteren Tabelle - und behalten n-Datensätze. (Bild 2)

Bild 1
bild 1
Bild 2
bild 2

Um die Daten besser strukturieren zu können, sollen diese Datensätze den Keys zugeordnet werden.
Folgende Tabelle soll daher erstellt werden :D

bild 3

Gibt es eine Möglichkeit, so etwas mit Excel rasch zu machen? Gerne auch via VBA.

Falls möglich wäre eine Schritt für Schritt-Anleitung super.

Vielen Dank im Voraus!

Content-Key: 622982

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

Printed on: April 28, 2024 at 17:04 o'clock

Member: Printe
Solution Printe Nov 16, 2020 updated at 16:33:33 (UTC)
Goto Top
Gähn ...
Sub Kombiniere()
    Set ws1 = Sheets(1) ' Sheet 1 (Bild 1)  
    Set ws2 = Sheets(2) ' Sheet 2 (Bild 2)  
    Set ws3 = Sheets(3) ' Sheet 3 (Bild 3)  
    For Each cell In ws1.Range("A2:A" & ws1.Cells(Rows.Count, "A").End(xlUp).Row)  
        With ws2.Range("E:E")  
            Set f = .Find(cell.Offset(0, 1).Value, LookIn:=xlValues, LookAt:=xlWhole)
            If Not f Is Nothing Then
                fStart = f.Address
                Do
                    Set nFree = ws3.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)  
                    f.Resize(1, 3).Copy nFree.Offset(0, 1)
                    nFree.Value = cell.Value
                    Set f = .FindNext(f)
                Loop While Not f Is Nothing And f.Address <> fStart
            End If
        End With
    Next
End Sub
Member: spinnifex
spinnifex Nov 16, 2020 updated at 17:05:37 (UTC)
Goto Top
und jetzt noch ein Option Explicit oben drüber - und der Mops kot... face-wink Von wegen "gähn" ... Guter Code!
Member: ChimRed
ChimRed Nov 27, 2020 at 14:32:19 (UTC)
Goto Top
Hi,

danke der Code ist wirklich gut und ich hab daraus einiges Lernen können. Danke dafür!

Ich hab den Code jetzt ein wenig umgeschrieben, bin mir aber nicht sicher, ob die Variablendefinition so Sinn macht oder ob man hier durch eine bessere Definition bspw. ggf. Ladezeiten reduzieren kann?

Dim ws1 As Variant 'Variable definiert
Dim ws2 As Variant 'Variable definiert
Dim ws3 As Variant 'Variable definiert
Dim cell As Variant 'Variable definiert
Dim f As Variant 'Variable definiert
Dim fstart As Variant 'Variable definiert
Dim nfree As Variant 'Variable definiert