ich habe folgendes Problem ich möchte zwei Tabellen miteinander vergleichen. Es soll überprüft werden ob es Einträge (Zeilen) in der Tabelle A gibt die es in der Tabelle B nicht gibt falls das der Fall ist soll der neue Eintrag (die ganze Zeile) in eine Tabelle "Neu" kopiert werden.
Leider macht das Ding nicht das was ich möchte.
Für jede Hilfe bin ich Dankbar.
(Ich bin noch ein Anfänger was VB angeht)
Public Sub TabellenVergleichStart()
'Aufruf Tabellen vergleichen...
TabellenVergleich Worksheets(1), Worksheets(2)
End Sub
Public Sub TabellenVergleich(ByVal xlWS1 As Worksheet, _
ByVal xlWS2 As Worksheet)
'Dim xlWBReport As Workbook 'Arbeitsmappe für die Ausgabe des Vergleichs
'Dim xlWSReport As Worksheet 'Tabellenblatt für die Ausgabe des Vergleichs
Dim lngRowsCnt1 As Long 'Verwendete Zeilen in Vergleichstabelle 1
Dim lngRowsCnt2 As Long 'Verwendete Zeilen in Vergleichstabelle 2
Dim lngRowsMax As Long 'Anzahl der zu vergleichenden Zeilen
Windows("test.xls").Activate 'Wechselt in die neue Mappe
Sheets("A").Select
'-------------------------------------------------------------
'Anzahl der verwendeten Zeilen in WS1 ermitteln:
With xlWS1.UsedRange
lngRowsCnt1 = .Rows.Count
End With
Sheets("B").Select
'Anzahl der verwendeten Zeilen in WS2 ermitteln:
With xlWS2.UsedRange
lngRowsCnt2 = .Rows.Count
End With
'Anzahl der zu vergleichenden Zeilen ermitteln:
If lngRowsCnt1 > lngRowsCnt2 Then
lngRowsMax = lngRowsCnt1
Else
lngRowsMax = lngRowsCnt2
End If
For r = 1 To 25 'lngRowsMax
strCellFormula1 = vbNullString
strCellFormula2 = vbNullString
For t = 1 To 25 'lngRowsMax
strCellFormula1 = xlWS1.Cells(r, 1).FormulaLocal
strCellFormula2 = xlWS2.Cells(t, 1).FormulaLocal
If strCellFormula2 <> strCellFormula1 Then
Cells(t, 1).Select 'wählt die aktuelle zeile aus
Selection.Copy
Sheets("Neu").Select
Cells(t, 1).Select
ActiveSheet.Paste
End If
Next t
Next r
End Sub
Gruss
Micha