Supportnet Computer
Planet of Tech

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

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

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.

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

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.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: