Mein erster Test, als Trockenübung war folgender Code:
Sub Daten_abgleichen()
For Each cl In Range("A:A")
Set gef = Range("F:F").Find(cl, , , xlWhole)
If gef Is Nothing Then Range("F2").End(xlDown).Offset(1, 0) = cl
Next cl
End Sub
Das funktioniert super.
Nun möchte ich aber nicht die ganzen Spalten angeben, sondern da ich zwei intelligente Tabellen verwende, diese auch direkt ansprechen. Hier mein Ansatz:
Sub Daten_abgleichen()
'Import Tabelle als Variable speichern
Dim tbl_master As ListObject
Set tbl_master = Sheets("Masterliste").ListObjects(1)
'Zu erweiternde Tabelle als Variable speichern
Dim tbl_work As ListObject
Set tbl_work = Sheets("Arbeitsliste").ListObjects(1)
For Each cl In tbl_master.ListColumns(2).DataBodyRange
Set gef = tbl_work.ListColumns(2).DataBodyRange.Find(cl, , , xlWhole)
If gef Is Nothing Then tbl_work.ListColumns(2).DataBodyRange.End(xlDown).Offset(1, 0) = cl
Next cl
End Sub
Leider klappt dieser Ansatz noch nicht und ich vermute, dass man das besser lösen kann. Leider finde ich gerade keinen Ansatz. Ich freue mich auf eure Unterstützung. Hier meine Testdatei: https://www.herber.de/bbs/user/170660.xlsm
Grüße