Ergänzt...
19.05.2017 09:17:05
Michael
Hallo!
ich bin quasi drüber gestolpert.
Alles schön und gut - aber warum stellst Du mir dann ein neues Bild ein, statt einer Bsp-Arbeitsmappe? Meinst Du es macht mir mehr Spaß, Dir eine zweite Lösung zu schreiben, wenn ich davor noch die Spiel-Daten manuell nachbauen darf? Denke bei zukünftigen Anfragen im Forum dran, dass es dem Antwortverhalten von Helferinnen zuträglich ist, wenn man deren Job angenehmer gestaltet...
Hier die neue Variante als Bsp-Datei: https://www.herber.de/bbs/user/113686.xlsm
...und hier als Code
Sub b()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim WsQuell As Worksheet: Set WsQuell = Wb.Worksheets("Tabelle1")
Dim WsSuch As Worksheet: Set WsSuch = Wb.Worksheets("Tabelle2")
Dim WsZiel As Worksheet: Set WsZiel = Wb.Worksheets("Tabelle3")
Dim aDB, aNr, aCol, i&, j&, k&, l&, m&, n&
Application.ScreenUpdating = False
aDB = WsQuell.Range("A2:D" & _
WsQuell.Cells(WsQuell.Rows.Count, 1).End(xlUp).Row)
aNr = WsSuch.Range("A2:A" & WsSuch.Cells(WsSuch.Rows.Count, 1).End(xlUp).Row)
ReDim aCol(1 To UBound(aDB, 1), 1 To UBound(aDB, 2))
For i = LBound(aNr) To UBound(aNr)
For j = LBound(aDB) To UBound(aDB)
If aNr(i, 1) = aDB(j, 1) Then
l = l + 1
For k = 1 To UBound(aDB, 2)
aCol(l, k) = aDB(j, k)
Next k
End If
Next j
Next i
With WsZiel
For m = 1 To l
For n = 1 To UBound(aCol, 2)
.Cells(m, n) = aCol(m, n)
Next n
Next m
End With
Erase aDB: Erase aNr: Erase aCol
Set Wb = Nothing
Set WsQuell = Nothing
Set WsSuch = Nothing
Set WsZiel = Nothing
End Sub
Rückmeldung äußerst erwünscht!!!
LG
Michael