Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
Inhaltsverzeichnis

Tabellenabgleich mit Löschung

Tabellenabgleich mit Löschung
03.04.2005 08:23:15
Burghard
Hallo,
ich brauche mal wieder Hilfe (seufz). Ich habe das Archiv und die Recherche schon rauf und runter gesucht unter "Tabellen vergleichen", "Tabellen abgleichen" etc., aber alles paßte nicht so, wie ich das brauche.
Ich habe in einer Arbeitsmappe zwei Tabellen, die den gleichen Spaltenaufbau haben (4 Spalten). Die Tabellen sind in der Anzahl der Datensätze unterschiedlich. In Tabelle1 gibt es Zeilen, die nicht in Tabelle2 sind und umgekehrt.
Ich suche ein VBA-Makro, daß die Tabelle1 und Tabelle2 mit der ganzen Zeile, also allen 4 Spalten, miteinander vergleicht.
Die Zeilen, die in Tabelle1 und Tabelle2 völlig gleich sind, sollen sowohl in der Tabelle1 und auch in der Tabelle2 gelöscht werden.
Als Ergebnis sollten dann in Tabelle1 nur noch die Datensätze übrigbleiben, die in Tabelle2 nicht vorhanden sind und umgekehrt.
Über Hilfe würde ich mich sehr freuen. :-)
Gruß
Burghard

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenabgleich mit Löschung
03.04.2005 08:36:01
Hajo_Zi
Hallo Burghard,
müssen immer alle 4 Spalten verglichen werden, oder gibt es eine Spalte die man als Vergleichskriterium benutzen kann?
Also ich für meinen Teil teste Code immer bevor ich ihn Poste. Du hast Dir die Arbeit schon gemacht die Datei zu erstellen. Wäre es da nicht besser ein Beispiel hochzuladen?

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
AW: Tabellenabgleich mit Löschung
03.04.2005 16:05:53
Burghard
Hallo Hajo,
schönen Dank für deine Antwort. Du hast vollkommen recht. Sorry, daß ich eine Beispieltabelle nicht beigefügt habe.
Werner hat mir kurz nach deiner Antwort ein funktionierendes Makro geschrieben/in das Forum gestellt.
Vielen Dank für dein Hilfeangebot!
Gruß
Burghard
AW: Tabellenabgleich mit Löschung
03.04.2005 10:02:43
WernerB.
Hallo Burghard,
da meine Glaskugel sonntags ihren Ruhetag hat, bin ich von folgenden Voraussetzungen ausgegangen:
1. Die beiden Tabellenblätter heißen "Tabelle1" und "Tabelle2".
2. Die Tabellen haben keine Überschriften.
3. Die vier Spalten in beiden Tabellen sind jeweils die Spalten A bis D.

Sub Burghard()
Dim wS1 As Worksheet, wS2 As Worksheet, _
sT As String, _
i As Long, j As Long, laR1 As Long, laR2 As Long
Application.ScreenUpdating = False
Set wS1 = Sheets("Tabelle1")
Set wS2 = Sheets("Tabelle2")
With wS1
laR1 = .Cells(Rows.Count, 1).End(xlUp).Row
For i = laR1 To 1 Step -1
sT = .Cells(i, 1).Text & .Cells(i, 2).Text _
& .Cells(i, 3).Text & .Cells(i, 4).Text
laR2 = wS2.Cells(Rows.Count, 1).End(xlUp).Row
For j = laR2 To 1 Step -1
If sT = wS2.Cells(j, 1).Text & wS2.Cells(j, 2).Text _
& wS2.Cells(j, 3).Text & wS2.Cells(j, 4).Text Then
.Rows(i).Delete
wS2.Rows(j).Delete
Exit For
End If
Next j
Next i
End With
With wS2
laR2 = .Cells(Rows.Count, 1).End(xlUp).Row
For i = laR2 To 1 Step -1
sT = .Cells(i, 1).Text & .Cells(i, 2).Text _
& .Cells(i, 3).Text & .Cells(i, 4).Text
laR1 = wS1.Cells(Rows.Count, 1).End(xlUp).Row
For j = laR1 To 1 Step -1
If sT = wS1.Cells(j, 1).Text & wS1.Cells(j, 2).Text _
& wS1.Cells(j, 3).Text & wS1.Cells(j, 4).Text Then
.Rows(i).Delete
wS1.Rows(j).Delete
Exit For
End If
Next j
Next i
End With
Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: Tabellenabgleich mit Löschung
03.04.2005 16:07:42
Burghard
Hallo Werner,
schönen Dank für das Makro. Funktioniert einwandfrei. Super.
Stellt es ein Problem dar, das Makro noch so zu ändern, daß erst ab Zeile 2 (wegen Übeschriften in beiden Tabellen in A1, B1, C1, D1) verglichen und gelöscht wird? Ich mag gar nicht fragen.
Schönen Dank für die Hilfe!
Gruß
Burghard
AW: Tabellenabgleich mit Löschung
03.04.2005 20:12:59
andre
Hallo Burghard,
Du musst in Zeilen mit diesem code:
For i = laR1 To 1 Step -1
To 1 in To 2 ändern. Statt laR1 steht auch laR2 oder anderes.
AW: Tabellenabgleich mit Löschung
04.04.2005 11:38:32
Burghard
Hallo Andre,
vielen Dank für deine Hilfe! Alles super!
Gruß
Burghard
AW: Tabellenabgleich mit Löschung
04.04.2005 07:22:43
WernerB.
Hallo Burghard,
dem Manne kann geholfen werden:

Sub Burghard()
Dim wS1 As Worksheet, wS2 As Worksheet, _
sT As String, _
i As Long, j As Long, laR1 As Long, laR2 As Long
Application.ScreenUpdating = False
Set wS1 = Sheets("Tabelle1")
Set wS2 = Sheets("Tabelle2")
With wS1
laR1 = .Cells(Rows.Count, 1).End(xlUp).Row
For i = laR1 To 2 Step -1
sT = .Cells(i, 1).Text & .Cells(i, 2).Text _
& .Cells(i, 3).Text & .Cells(i, 4).Text
laR2 = wS2.Cells(Rows.Count, 1).End(xlUp).Row
For j = laR2 To 2 Step -1
If sT = wS2.Cells(j, 1).Text & wS2.Cells(j, 2).Text _
& wS2.Cells(j, 3).Text & wS2.Cells(j, 4).Text Then
.Rows(i).Delete
wS2.Rows(j).Delete
Exit For
End If
Next j
Next i
End With
With wS2
laR2 = .Cells(Rows.Count, 1).End(xlUp).Row
For i = laR2 To 2 Step -1
sT = .Cells(i, 1).Text & .Cells(i, 2).Text _
& .Cells(i, 3).Text & .Cells(i, 4).Text
laR1 = wS1.Cells(Rows.Count, 1).End(xlUp).Row
For j = laR1 To 2 Step -1
If sT = wS1.Cells(j, 1).Text & wS1.Cells(j, 2).Text _
& wS1.Cells(j, 3).Text & wS1.Cells(j, 4).Text Then
.Rows(i).Delete
wS1.Rows(j).Delete
Exit For
End If
Next j
Next i
End With
Application.ScreenUpdating = True
End Sub

Gruß
WernerB.
Anzeige
AW: Tabellenabgleich mit Löschung
04.04.2005 17:27:09
Burghard
Hallo Werner,
schönen Dank. Klappt einwandfrei! Einfach super!
Viele Grüsse
Burghard
P.S.:
Ich hab da noch ein anderes Problem. Ich stelle es ins Forum.

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige