leider wurde mein Thread schon archiviert, deshalb muss ich einen neunen Aufmachen.
Ich habe zwei Listen die sich gegenseitig abgleichen sollen. Beide Listen haben 9 Spalten. Jede Zeile bildet einen Datensatz.
Mein Makro soll anhand der ersten drei Spalten prüfen, ob der Datensatz in der anderen Tabelle vorhanden ist. Findet es einen Datzensatz mit drei identischen Spalten, soll der Rest gleichgesetzt werden. Ist der Datensatz nicht vorhanden, wird er in die erste freie Zeile eingetragen.
Mein Code:
Sub Abgleich()
Dim wkb As Workbook
Dim wkb1 As Workbook
Dim wks As Worksheet
Dim wks1 As Worksheet
Workbooks.Open "Hier steht der Dateipfad"
Set wkb = Workbooks("Name der Datei")
Set wkb1 = ThisWorkbook
wkb1.Activate
Set wks = wkb.Worksheets("Tabelle1") 'MASTERliste
Set wks1 = wkb1.Worksheets("Sheet1") 'Schülerliste
anz = wks.Cells(65536, 1).End(xlUp).Row
anz1 = wks1.Cells(65536, 1).End(xlUp).Row
For Z = 3 To anz1 ' Schleife läuft von 3 bis anz1(65536)
suchwert = wks1.Range(Cells(Z, 1), Cells(Z, 3))
With wks.Range("a3:a" & anz)
Set C = .Find(suchwert, LookIn:=xlValues, LookAt:=xlWhole)
If Not C Is Nothing Then
For S = 1 To 11
wks.Cells(C.Row, S) = wks1.Cells(Z, S)
Next
Else
For S = 1 To 11
wks.Cells(anz + 1, S) = wks1.Cells(Z, S)
Next
anz = wks.Cells(65536, 1).End(xlUp).Row
End If
End With
Next
wkb.Save
wkb.Close
Application.ScreenUpdating = True
End Sub
Mein Problem:
Mein Makro sucht anscheinend nur anhand der ersten Spalte und nicht nach meinem Bereich. Wo liegt mein Fehler?
Vielen Dank vorab!
Grüße,
Peter
P.S Ich habe den Code im Archiv gefunden und an mein Problem angepasst.