Tabelleninhalt vergleichen und löschen
Hallo Fachleute,
im Excel habe ich eine Tabelle mit 4 Spalten. Eine weitere sieht von der Aufteilung genauso aus, jedoch der Zeileninhalt könnte unterschiedlich sein. Das Ziel ist folgendes: die erste Zeile der zweiten Tabelle muss mit dem Inhalt der ersten Tabelle verglichen werden. Ist diese Zeile irgendwo vorhanden, wird diese aus der zweitenTabelle gelöscht, usw. Sollte die Zeile nicht vorhanden sein wird sie in der zweiten Tabelle gelassen.
Habt ihr eine Idee?
Antwort schreiben
Antwort 1 von aiuto vom 12.12.2019, 21:56 Options
Hallo Olowedi,
Das liest sich so, als ob man ohne eine Beispielmappe nicht so einfach zum Ziel kommen wird. Es fehlen die nötigen Angaben!
Kannst du die Excel-datei ins Netz stellen z.B.
www.netupload.de und den Link dazu hier posten?
Generell sollt dies jedoch möglich sein.
mfg
vom Helfer
Antwort 2 von Marie vom 13.12.2019, 00:31 Options
Probier mal das, müsste laufen
gruß marie
Public Sub fktvergleiche()
Dim lolastZ1 As Long 'letzte beschriebene Zeile in Tabelle 1 Spalte1
Dim lolastZ2 As Long 'letzte beschriebene Zeile in Tabelle 2 Spalte1
Dim izeile1 As Long
Dim izeile2 As Long
lolastZ1 = Tabelle1.Range("A65536").End(xlUp).Row
lolastZ2 = Tabelle2.Range("A65536").End(xlUp).Row
Application.ScreenUpdating = False
For izeile2 = 1 To lolastZ2 'geht jede beschriebene zeile in Tabelle 2 durch
For izeile1 = 1 To lolastZ1
If Trim$(Tabelle1.Cells(izeile1, 1)) = Trim$(Tabelle2.Cells(izeile2, 1)) Then
If Trim$(Tabelle1.Cells(izeile1, 2)) = Trim$(Tabelle2.Cells(izeile2, 2)) Then
If Trim$(Tabelle1.Cells(izeile1, 3)) = Trim$(Tabelle2.Cells(izeile2, 3)) Then
If Trim$(Tabelle1.Cells(izeile1, 4)) = Trim$(Tabelle2.Cells(izeile2, 4)) Then
Tabelle2.Rows(izeile2).Delete
End If
End If
End If
End If
Next izeile1
Next izeile2
Application.ScreenUpdating = True
End Sub
Antwort 3 von Marie vom 13.12.2019, 00:32 Options
Public Sub fktvergleiche()
Dim lolastZ1 As Long 'letzte beschriebene Zeile in Tabelle 1 Spalte1
Dim lolastZ2 As Long 'letzte beschriebene Zeile in Tabelle 2 Spalte1
Dim izeile1 As Long
Dim izeile2 As Long
lolastZ1 = Tabelle1.Range("A65536").End(xlUp).Row
lolastZ2 = Tabelle2.Range("A65536").End(xlUp).Row
Application.ScreenUpdating = False
For izeile2 = 1 To lolastZ2 'geht jede beschriebene zeile in Tabelle 2 durch
For izeile1 = 1 To lolastZ1
If Trim$(Tabelle1.Cells(izeile1, 1)) = Trim$(Tabelle2.Cells(izeile2, 1)) Then
If Trim$(Tabelle1.Cells(izeile1, 2)) = Trim$(Tabelle2.Cells(izeile2, 2)) Then
If Trim$(Tabelle1.Cells(izeile1, 3)) = Trim$(Tabelle2.Cells(izeile2, 3)) Then
If Trim$(Tabelle1.Cells(izeile1, 4)) = Trim$(Tabelle2.Cells(izeile2, 4)) Then
Tabelle2.Rows(izeile2).Delete
End If
End If
End If
End If
Next izeile1
Next izeile2
Application.ScreenUpdating = True
End Sub
Antwort 4 von Olowedi vom 13.12.2019, 21:29 Options
Hallo Marie,
vielen Dank. Hat funktioniert.
Antwort 5 von ponscho vom 22.01.2020, 17:01 Options
hallo @all,
habe diese funktion über "suche" gefunden, da ich dieses makro auch gebrauchen kann.
nur könnte mir jemand kurz helfen?
würde den vergleich erst ab zeile 6 der beiden tabellen starten wollen.
wo muss ich das in diesem code ändern?
internette grüsse
ponscho
Antwort 6 von ponscho vom 22.01.2020, 17:33 Options
ach... ans hirn fass, ich habs gefunden ;o)
jetzt ist aber ein anderes problem, dieser code braucht 2-4 button-klicks bis er tatsächlich alle doppelten löscht.