Vergleich von 2 Tabellen in Excel
Hallo an Alle,
folgendes Problem:
Ich habe eine Exceldatei mit 2 Tabellen. Spalten sind identisch. Tabelle1 hat aktuelle Daten und Tabelle2 ist die vorherige Version.
Jetzt würde ich gerne die Daten aus Tabelle1 mit den Daten aus Tabelle2 vergleichen, und die, die doppelt sind, also in beiden Tabellen auftauchen, in Tabelle1 die ganze Zeile löschen. Damit ich am Ende in der Tabelle1 nur die Daten habe, die in Tabelle2 nicht vorkommen, also nur die neu hinzugefügten.
Wie kann ich in VBA folgendes machen:
Wenn ZelleA2 und ZelleC2 aus Tabelle1 gleich Tabelle2, dann die ganze Zeile aus Tabelle1 löschen ... usw. als Schleife
Datenformate:
1. Spalte A sind Zahlen (4 Stellen)
2. Spalte C ist die Anschrift (gemischt = Straße, Hausnummer, Postleitzahl und der Ort)
Vielen lieben Dank für eure Hilfe
Viele Grüße
folgendes Problem:
Ich habe eine Exceldatei mit 2 Tabellen. Spalten sind identisch. Tabelle1 hat aktuelle Daten und Tabelle2 ist die vorherige Version.
Jetzt würde ich gerne die Daten aus Tabelle1 mit den Daten aus Tabelle2 vergleichen, und die, die doppelt sind, also in beiden Tabellen auftauchen, in Tabelle1 die ganze Zeile löschen. Damit ich am Ende in der Tabelle1 nur die Daten habe, die in Tabelle2 nicht vorkommen, also nur die neu hinzugefügten.
Wie kann ich in VBA folgendes machen:
Wenn ZelleA2 und ZelleC2 aus Tabelle1 gleich Tabelle2, dann die ganze Zeile aus Tabelle1 löschen ... usw. als Schleife
Datenformate:
1. Spalte A sind Zahlen (4 Stellen)
2. Spalte C ist die Anschrift (gemischt = Straße, Hausnummer, Postleitzahl und der Ort)
Vielen lieben Dank für eure Hilfe
Viele Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 271368
Url: https://administrator.de/contentid/271368
Ausgedruckt am: 15.11.2024 um 23:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo abuelito,
remove_duplicates_271368.xlsm
Grüße Uwe
Ich würde dies gerne mit VBA realisieren.
machen wir doch glatt / Kommentare siehe Coderemove_duplicates_271368.xlsm
Sub DeleteDuplicates()
Dim dic As Object, rngDelete As Range, cell As Range
Set dic = CreateObject("Scripting.Dictionary")
'Referenztabelle mit Daten Spalten aus A und C in Dictionary laden
With Sheets(2)
For Each cell In .Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row)
strVal = cell.Value & "|" & cell.Offset(0, 2).Value
If Not dic.Exists(strVal) Then
dic.Add strVal, ""
End If
Next
End With
With Sheets(1)
'Für jede belegte Zelle in Tabelle1
For Each cell In .Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row)
strVal = cell.Value & "|" & cell.Offset(0, 2).Value
'prüfe ob Kombination im Dictionary existiert
If dic.Exists(strVal) Then
'Füge Zeile zu einem kombinierten Range zusammen
If Not rngDelete Is Nothing Then
Set rngDelete = Union(rngDelete, cell.EntireRow)
Else
Set rngDelete = cell.EntireRow
End If
End If
Next
End With
'Lösche die gespeicherten Zeilen auf einen Rutsch
If Not rngDelete Is Nothing Then
rngDelete.Delete
End If
End Sub
Hallo, ich habe das gleiche Anliegen. Allerdings müsste bei mir nur Tabelle 1 mit dem Namen “Variable“ lauten. Der zu überprüfen der Wert liegt in Spalte “N“ ab zelle N2.
Die zu löschenden Zeiten liegen in der Tabelle mit dem Namen “Export“.
Der zu überprüfen der Wert liegt hier in Spalte B.
Leider sind meine VBA Kenntnisse nicht besonders gut, bzw nicht vorhanden. Kann mir hier jemand helfen?
Die zu löschenden Zeiten liegen in der Tabelle mit dem Namen “Export“.
Der zu überprüfen der Wert liegt hier in Spalte B.
Leider sind meine VBA Kenntnisse nicht besonders gut, bzw nicht vorhanden. Kann mir hier jemand helfen?