Supportnet / Forum / Tabellenkalkulation
Tabelleninhalt vergleichen und löschen
Frage
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 1 von aiuto
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
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
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
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
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
Hallo Marie,
vielen Dank. Hat funktioniert.
vielen Dank. Hat funktioniert.
Antwort 5 von ponscho
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
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
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.
jetzt ist aber ein anderes problem, dieser code braucht 2-4 button-klicks bis er tatsächlich alle doppelten löscht.