Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 2 Excel Tabelle vergleichen und Doppelte löschen

2 Excel Tabelle vergleichen und Doppelte löschen
09.08.2015 14:21:16
Rene
Guten Tag,
erstmal sorry falls das Thema hier schon mal behandelt wurde, ich habs leider nicht gefunden.
Also jetzt zu meinem Problem:
Ich habe 2 Excel Tabellen und suche ein Macro, welches die Daten welche in Tabelle 2 sind, aus Tabelle 1 löscht.
Als Abgleichkriterium ist es möglich mich auf eine bestimmte Spalte, in dem Fall G, zu beziehen. Die beiden Tabellen haben den gleichen Aufbau.
Ich hoffe ich konnte mein Problem vernünftig darlegen. :-)
Danke schon mal für die Hilfe.
Achso, ich muss noch dazu sagen, ich habe wirklich nur Excel-Grundkenntnisse.

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Excel Tabelle vergleichen und Doppelte löschen
09.08.2015 14:42:41
Sepp
Hallo Rene,
in ein allgemeines Modul.
Sub loeschen()

With Sheets("Tabelle1").UsedRange
  With .Columns(.Columns.Count + 1)
    .FormulaR1C1 = "=IF(ISERROR(MATCH(RC7,Tabelle2!C7,0)),ROW(),0)"
    .Cells(1, 1).Value = 0
    .EntireRow.removeDuplicates .Column, xlNo
    .ClearContents
  End With
End With

End Sub


Gruß Sepp

Anzeige
AW: 2 Excel Tabelle vergleichen und Doppelte löschen
09.08.2015 14:47:35
Rene
Danke erstmal für die schnelle Antwort.
So ich habe jetzt in Tabelle 2 die Daten, die aus Tabelle 1 gelöscht werden sollen.
Hab das Macro jetzt eingefügt und wenn ich es starte kommt:
Laufzeitfehler 438
Objekt unterstüzt diese Eigenschaft oder MEthode nicht.
Sorry bin der totale Noob bei sowas.

Anzeige
AW: 2 Excel Tabelle vergleichen und Doppelte löschen
09.08.2015 14:51:47
Rene
Wenn ich dann auf Debuggen gehen, dann sagt er in dieser Zeile "EntireRow.removeDuplicates .Column, xlNo" ist wohl ein Fehler.

AW: 2 Excel Tabelle vergleichen und Doppelte löschen
09.08.2015 14:55:28
Sepp
Hallo Rene,
sorry, mein Fehler, ich habe nicht auf deine XL-version geachtet.
Sub loeschen()
Dim rng As Range

With Sheets("Tabelle1").UsedRange
  With .Columns(.Columns.Count + 1)
    .FormulaR1C1 = "=IF(ISERROR(MATCH(RC7,Tabelle2!C7,0)),"""",NA())"
    .Cells(1, 1) = ""
    On Error Resume Next
    Set rng = .SpecialCells(xlCellTypeFormulas, 16)
    On Error GoTo 0
    If Not rng Is Nothing Then rng.EntireRow.Delete
    .ClearContents
  End With
End With

End Sub


Gruß Sepp

Anzeige
AW: 2 Excel Tabelle vergleichen und Doppelte löschen
09.08.2015 15:07:27
Rene
Danke.
So probiere es gerade mal aus, dauert aber wohl etwas bei 9000 Datensätze in Tabelle 1 und 800 in Tabelle 2. :-)
Mal kurz zum Verständniss: gleicht das Makro die kompletten Datensätze ab oder guckt es nur, ob Spalte G übereinstimmt? Letzteres wäre besser, weil es sein kann das in andere Spalten geändert worden sein könne.

Anzeige
AW: 2 Excel Tabelle vergleichen und Doppelte löschen
09.08.2015 15:12:22
Sepp
Hallo Rene,
so wie du sagtest, nur Spalte G wird verglichen.
Mein erster Code ist viel schneller, aber leider bei deiner Version nicht einsetzbar.
Gruß Sepp

Anzeige
AW: 2 Excel Tabelle vergleichen und Doppelte löschen
09.08.2015 15:25:57
Rene
Ah ok. dann warte ich mal. kommt ja auf die Geschwindigkeit nicht an. kann ich ja einfach durchlaufen lassen.
Hatte mich nur gewundert, weil im Code nirgendswo "G" steht. Aber ich hab da ja auch nicht wirklich Ahnung von.

AW: 2 Excel Tabelle vergleichen und Doppelte löschen
09.08.2015 16:33:42
Rene
SUPER !!!!!!!!!
Funktioniert klasse.
Vielen, vielen Dank. :-)

Anzeige
AW: 2 Excel Tabelle vergleichen und Doppelte löschen
09.08.2015 18:34:22
Rene
SUPER !!!!!!!!!
Funktioniert klasse.
Vielen, vielen Dank. :-)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zwei Excel-Tabellen vergleichen und doppelte Werte löschen


Schritt-für-Schritt-Anleitung

Um zwei Excel-Tabellen zu vergleichen und doppelte Werte zu löschen, kannst du ein VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne die Excel-Datei mit den beiden Tabellen, die du vergleichen möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Gehe zu Einfügen > Modul.
  4. Kopiere den folgenden Code in das Modul:

    Sub loeschen()
       Dim rng As Range
       With Sheets("Tabelle1").UsedRange
           With .Columns(.Columns.Count + 1)
               .FormulaR1C1 = "=IF(ISERROR(MATCH(RC7,Tabelle2!C7,0)),"""",NA())"
               .Cells(1, 1) = ""
               On Error Resume Next
               Set rng = .SpecialCells(xlCellTypeFormulas, 16)
               On Error GoTo 0
               If Not rng Is Nothing Then rng.EntireRow.Delete
               .ClearContents
           End With
       End With
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Starte das Makro:

    • Drücke ALT + F8, wähle loeschen aus und klicke auf Ausführen.

Das Makro vergleicht die Werte in Spalte G der beiden Tabellen und löscht die Zeilen in Tabelle 1, die auch in Tabelle 2 vorhanden sind.


Häufige Fehler und Lösungen

Laufzeitfehler 438
Wenn du einen Laufzeitfehler 438 erhältst, könnte dies daran liegen, dass die Excel-Version nicht die erforderlichen Methoden unterstützt. Stelle sicher, dass du die richtige Version verwendest.

Debugging-Probleme
Wenn du in der Zeile EntireRow.removeDuplicates einen Fehler siehst, überprüfe, ob du den richtigen Code kopiert hast. Der aktualisierte Code sollte das Problem beheben.


Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die Bedingte Formatierung nutzen, um doppelte Werte in zwei Excel-Tabellen zu markieren:

  1. Markiere die erste Tabelle.
  2. Gehe zu Start > Bedingte Formatierung > Regel zum Hervorheben von Zellen > Gleiche Werte.
  3. Wähle eine Formatierung aus und klicke auf OK.

Diese Methode hilft dir, die doppelten Werte schnell zu identifizieren, ohne sie sofort zu löschen.


Praktische Beispiele

Angenommen, du hast folgende Daten in Tabelle 1 und Tabelle 2:

Tabelle 1: A B G
1 X 100
2 Y 200
3 Z 300
Tabelle 2: A B G
4 A 200
5 B 300

Nach dem Ausführen des Makros wird Tabelle 1 so aussehen:

A B G
1 X 100

Die Werte 200 und 300 wurden gelöscht, da sie in Tabelle 2 vorhanden sind.


Tipps für Profis

  • Makros sichern: Speichere deine Excel-Datei im .xlsm-Format, um die Makros zu erhalten.
  • Daten sichern: Mache immer eine Sicherung deiner Daten, bevor du Makros ausführst, um unbeabsichtigte Datenverluste zu vermeiden.
  • Optimierung: Bei großen Datenmengen kann es hilfreich sein, die Makros zu optimieren, um die Laufzeit zu verkürzen.

FAQ: Häufige Fragen

1. Wie kann ich die Spalte ändern, die verglichen wird?
Du kannst die Spalte G im Code ändern, indem du RC7 zu der gewünschten Spaltennummer anpasst.

2. Funktioniert das Makro auch in älteren Excel-Versionen?
Das Makro sollte in den meisten Versionen von Excel funktionieren, jedoch gibt es Unterschiede in den Funktionen. Teste es bei Bedarf in deiner spezifischen Version.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige