Hallo zusammen,
ich stehe auf dem Schlauch. Vllt kann jmd helfen.
Mein Makro vergleicht die Spalte A von Tabelle1 mit der Spalte A von Tabelle2.
Für jede Zeile der Spalte A aus Tabelle 1 soll geprüft werden, ob dieser Wert in Spalte A der Tabelle2 vorhanden ist. Wenn alle Zeilen durchlaufen sind und keine Übereinstimmung gefunden, dann soll der Wert in eine Tabelle3 übertragen werden (hier sammel ich die Werte ohne Übereinstimmung).
Leider habe ich einen Fehler gemacht, finde ihn aber nicht.
Sub Abgleich() Dim zeile1 As Variant Dim zeile2 As Variant Dim erstefreiezeile As Variant Dim t1 As String Dim t2 As String erstefreiezeile = Sheets("Tabelle3").Cells(1048576, 1).End(xlUp).Row + 1 t1 = "Tabelle1" t2 = "Tabelle2" For zeile1 = 7 To 100 For zeile2 = 2 To 80 If Sheets(t1).Cells(zeile1, 1).Value = Sheets(t2).Cells(zeile2, 1) Then Else Sheets(t1).Cells(zeile1, 1).Copy Destination:=Sheets("Tabelle3").Cells( _ erstefreiezeile, 1) End If Next zeile1 Next zeile2 End Sub
Sub Abgleich2() Dim zeile1 As Long Dim zeile2 As Long Dim erstefreiezeile As Long Dim t1 As String Dim t2 As String Dim blnvorhanden As Boolean erstefreiezeile = Sheets("Tabelle3").Cells(1048576, 1).End(xlUp).Row + 1 t1 = "Tabelle1" t2 = "Tabelle2" For zeile1 = 7 To 100 blnvorhanden = False For zeile2 = 2 To 80 If Sheets(t1).Cells(zeile1, 1).Value = Sheets(t2).Cells(zeile2, 1) Then blnvorhanden = True Exit For End If Next zeile2 If Not blnvorhanden Then Sheets(t1).Cells(zeile1, 1).Copy Destination:=Sheets("Tabelle3").Cells( _ erstefreiezeile, 1) erstefreizeile = erstefreiezeile + 1 End If Next zeile1 End SubKennst du ZÄHLENWENN bzw. Worksheetfunction.CountIf ?
Sub Abgleich() Dim zeile As Variant Dim efz1 As Variant, efz3 As Variant Dim t1 As Worksheet, t2 As Worksheet, t3 As Worksheet Set t1 = Sheets("Tabelle1") Set t2 = Sheets("Tabelle2") Set t3 = Sheets("Tabelle3") efz1 = t1.Cells(t1.Rows.Count, 1).End(xlUp).Row efz3 = t3.Cells(t3.Rows.Count, 1).End(xlUp).Row + 1 For zeile = 7 To efz1 If WorksheetFunction.CountIf(t2.Columns(1), t1.Cells(zeile, 1).Value) = 0 Then t1.Cells(zeile, 1).Copy Destination:=t3.Cells(efz3, 1) efz3 = efz3 + 1 End If Next zeile End Sub