ich habe zwei Tabellen die folgendermaßen aufgebaut sind
bestellnr Badge Preis Text Material Datum
123456 10 12 hs 38476 12.2019
23456 20 16 ajs 93874 08.2019
34456 80 18 wjeh 8746 03.2019
45789 50 22 jehj 39874 07.2019
45722 70 18 djhd 9827 04.2019
Tabelle 2 ist genauso aufgebaut
Nun sollen die Daten aus Tabellenblatt2 mit den Daten aus Tabellenblatt1 verglichen werden. Explizit die Spalte Bestellnummer, Badge und Material.
Das Material kann nämlich öfter vorkommen, aber da ist die Bestellnummer und die Badge anders. Deswegen sollte am besten ein Key erstellt werden.
Wenn die Materialnummer aus Tabellenblatt2 in Tabellenblatt1 gefunden wird und der Key aus Bestellnummer und Badge übereinstimmen, sollen die Daten aus Tabellenblatt1 mit den Daten aus Tabellenblatt2 überschrieben werden und das Datum der Aktualisierung in Spalte 1 Tabellenblatt1 eingetragen werden.
Wird das Material nicht gefunden soll die ganze Zeile in Tabellenblatt 1 eingefügt werden. Auch wenn das Material gefunden wird und der Key jedoch nicht gefunden wird, soll die Zeile komplett kopiert und in Tabellenblatt 1 eingetragen werden.
ich habe folgendes schon geschrieben, weil ich die gleiche Prozedur ähnlich vorher schon mal hatte, das mit dem Key ist allerdings neu und ich weiß nicht, wie ich das am besten lösen kann
ich wäre über jede Hilfe dankbar!
Sub suchend ersetzen()
Dim Ws1 As Worksheet
Dim Ws2 As Worksheet
Dim C As Range
Dim D As Range
Set Ws1 = Worksheets("Tabelle1")
Set Ws2 = Worksheets("Tabelle2")
For Each C In Ws2.Range("C2:C100000").SpecialCells(xlCellTypeConstants)
Set D = Ws1.Columns(3).Find(C, lookat:=xlWhole, LookIn:=xlValues)
If Not D Is Nothing Then
C.EntireRow.Copy D.Offset(0, -2)
D.Offset(0, -2) = Date
Else
Set D = Ws1.Cells(Ws1.Rows.Count, 2).End(xlUp).Offset(1, -1)
C.EntireRow.Copy D
D = Date
End If
Set D = Nothing
Next C
End Sub