Anzeige
Archiv - Navigation
1788to1792
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehler zwischen zwei Tabellen finden

Fehler zwischen zwei Tabellen finden
23.10.2020 17:40:55
Timo
https://www.herber.de/bbs/user/141047.xlsm
Dieses Makro...….
Sub CommandButton1_Click()
'Code gleicht ganze Zeilen ab und gibt Zeilen aus, die kein Duplikat in der jeweils anderen  _
Tabelle haben
Dim zeile As Variant
Dim letztezeile1 As Variant
Dim letztezeile4 As Variant
Dim t1 As Worksheet, t2 As Worksheet, t3 As Worksheet
Set t1 = Sheets("Tabelle1")
Set t2 = Sheets("Tabelle2")
Set t3 = Sheets("Ergebnis")
letztezeile1 = t1.Cells(t1.Rows.Count, 1).End(xlUp).Row
letztezeile4 = t3.Cells(t3.Rows.Count, 1).End(xlUp).Row + 1
'Erster Durchgang __________________________________
For zeile = 1 To letztezeile1
If WorksheetFunction.CountIf(t2.Columns(4), t1.Cells(zeile, 4).Value) = 0 And Not  _
IsEmpty(t1.Cells(zeile, 4).Value) Then
t1.Cells(zeile, 4).EntireRow.Copy Destination:=t3.Cells(letztezeile4, 1)
letztezeile4 = letztezeile4 + 1
End If
Next zeile
'Zweiter Durchgang (nur t1 und t2 getauscht, damit beidseitiger Abgleich) _
__________________________________
For zeile = 1 To letztezeile1
If WorksheetFunction.CountIf(t1.Columns(4), t2.Cells(zeile, 4).Value) = 0 And Not  _
IsEmpty(t2.Cells(zeile, 4).Value) Then
t2.Cells(zeile, 4).EntireRow.Copy Destination:=t3.Cells(letztezeile4, 1)
letztezeile4 = letztezeile4 + 1
End If
Next zeile
End Sub

…..soll aus zwei identischen Tabellen jede Zeile vergleichen, und es soll eine leere Ergebnistabelle resultieren.
Wenn ich aber in einer Zelle einer Zeile (mein Beispiel vergleicht alle Spalten jeder Zeile) einen Wert ändere (in meiner Beispieldatei wird es zu FEHLER), dann soll die komplette Zeile in die Tabelle "Ergebnis" kopiert werden.
Schaut euch an, wie das Ergebnis ausschaut. Nicht weit weg, aber auch nicht richtig.
Wer kann helfen?

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler zwischen zwei Tabellen finden
23.10.2020 21:00:51
AlterDresdner
Hallo Timo,
was Du tust, ist mindestens doppelt gemoppelt, wenn nicht gar noch mehr.
Der nachfolgende Code sollte das Gewünschte auch tun.
Warum Du dazu eine Userform aufbaust, die nur einen Zweck hat, auf die Schaltfläche klicken zu dürfen, erschließt sich wohl nur Dir.
Eine Schaltfläche auf dem Ergebnisblatt, dem dieses Makro zugewiesen wird, reicht wohl aus.
Sub Vergleichen()
'Code gleicht Zeilen ab und kopiert Zeilen in die Tabelle "Ergebnis", die kein Duplikat in der  _
jeweils anderen Tabelle haben
'gibt es Differenzen, wird die Zeile aus beiden Blättern in das Ergebnisblatt kopiert
Dim zeile As Long, letztezeile As Long, i As Long, j As Long
Dim t1 As Worksheet, t2 As Worksheet, t3 As Worksheet
Set t1 = Sheets("Tabelle1")
Set t2 = Sheets("Tabelle2")
Set t3 = Sheets("Ergebnis")
letztezeile = t1.Cells(t1.Rows.Count, 1).End(xlUp).Row
With t3
.Activate
.Cells.Clear 'alte Inhalte löschen
zeile = 0
For i = 1 To letztezeile
For j = 1 To 5
If t1.Cells(i, j)  t2.Cells(i, j) Then Exit For 'Unterschied gefunden
Next j
If j 

Gruß der ALteDresdner
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige