Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
236to240
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
236to240
236to240
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Doppelte Datensätze gesamt löschen

Doppelte Datensätze gesamt löschen
25.03.2003 11:42:51
Chris
Hallo,
bin ein VBA-Anfänger und quäle mich mit folgendem problem rum:
Ich habe eine tabelle in welcher doppelte datensätze vorkommen, die komplett rausgelöscht werden müssen.
Nun benötige ich ein Makro, welches alle doppelten Datensätze in Spalte A lerkennt und dann die gesamte Zeile gelöscht wird - also nicht nur Löschung der Doublette sondern sowohl Original als auch Doublette.
Ich habe die hier vorgestellten makros schon ausprobiert aber es wird immer nur der doppelte datensatz gelöscht.
Wer kann mir helfen.
Vielen dank im voraus,
Chris


10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Doppelte Datensätze gesamt löschen
25.03.2003 11:52:57
Franz

Hallo Chris

einiges geht auch ohne VBA

Doppelte Löschen
angenommen Deine Daten stehen in A1 bis A????
Bereich markieren = Spalte A anklicken (evtl. eine Leerzeile vorher einfügen)
Daten / Filter / Spezialfilter
keine Duplikate
jetzt kannst du noch einstellen, ob an gleicher Stelle oder woanders placiert; hier also B1 eingeben
Spalte A anschließend löschen
Bei mehreren Spalten, muss die Liste eine Überschrift haben, am besten fett formatiert, dann erkennt Sie auch Excel als Überschrift.

Gruß

Re: Doppelte Datensätze gesamt löschen
25.03.2003 11:59:05
MRP

Hi Chris,
muss es wirklich ein Makro sein ? Mach dir doch ne Hilfsspalte mit Wenn und Zählenwenn. Also wenn Zählenwenn >1 dann "löschen" ansonsten "OK". Dann mit dem Autofilter nach löschen filtern, gefilterte Liste markieren, Bearbeiten/Gehe zu/ Inhalte.. nur sichtbare Zellen auswählen und Zeilen wie gewohnt löschen.
Ich hoff das hilft dir weiter,
Ciao
Manuele Rocco Parrino

Anzeige
Re: Doppelte Datensätze gesamt löschen
25.03.2003 12:02:29
Chris

Danke. Habe ich auch schon probiert, aber dann wird zwar das Duplikat (Spalte A) gelöscht, aber der Originalwert bleibt erhalten.
Meine Liste sieht bspw. so aus:
Spalte A, B, C
539374487105 1.032,12 109985
539374487107 1.032,12 110333
539374487138 1.032,12 109985
572534920747 266,84 110128
572534920747 -266,84 110128
572534920748 293,84 110128
572534920748 -293,84 110128
572534920777 537,84 110128

Nach der Löschung sollen nur noch die Datensätze
Spalte A, B, C
539374487105 1.032,12 109985
539374487107 1.032,12 110333
539374487138 1.032,12 109985
572534920777 537,84 110128

erscheinen.
geht das auch über Filter?
Gruß,
Chris



Anzeige
Re: Doppelte Datensätze gesamt löschen
25.03.2003 12:06:00
Chris

Danke. Habe ich auch schon probiert, aber dann wird zwar das Duplikat (Spalte A) gelöscht, aber der Originalwert bleibt erhalten.
Meine Liste sieht bspw. so aus:
Spalte A, B, C
539374487105 1.032,12 109985
539374487107 1.032,12 110333
539374487138 1.032,12 109985
572534920747 266,84 110128
572534920747 -266,84 110128
572534920748 293,84 110128
572534920748 -293,84 110128
572534920777 537,84 110128
Nach der Löschung sollen nur noch die Datensätze
Spalte A, B, C
539374487105 1.032,12 109985
539374487107 1.032,12 110333
539374487138 1.032,12 109985
572534920777 537,84 110128

erscheinen.
geht das auch über Filter?
Gruß,
Chris

Anzeige
Makro zum Löschen: wie kann ich dies nun ergänzen?
25.03.2003 12:47:02
Chris

Ich habe das nachfolgende Makro eingebaut. was muß ich hinzufügen, damit nicht nur das Duplikat gelöscht wird, also bspw.
vorher:
1051356
1051234
1051234
1051278
nachher
1051356
1051278
Gruß,
Chris

Sub Duplikat()

Dim j As Integer
Dim lrow As Integer


'erst sortieren
Cells.Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'dann löschen
lrow = Cells(Rows.Count, 1).End(xlUp).Row
For j = lrow To 2 Step -1
If Cells(j, 1) = Cells(j - 1, 1) Then
Rows(j).Delete
End If
Next j
Range("a1").Select

End Sub


Anzeige
Re: Makro zum Löschen: wie kann ich dies nun ergänzen?
25.03.2003 13:02:42
gordon

Gruß
gordon

Super, danke
25.03.2003 13:10:45
Chris

ist ja eigentlich logisch. hast mir damit bei über 11.000 datensätze geholfen,
Gruß
Chris

Re: Super, danke
25.03.2003 13:18:37
gordon

Hallo Chris,

klappt natürlich nur, wenn maximal Doppel und keine drei- oder mehrfach wiederholung vorkommt! Sonst müsste man noch was tun...

Gruß
gordon


Gordon:Statt löschen in neue tabelle kopieren?
25.03.2003 17:35:13
Chris

Hi Gordon,
brauche nochmal deine Hilfe,
was muß ich eingeben, um die doppelten Datensätze nicht zu löschen sondern in eine zweite tabelle zu schreiben?
Schon mal vielen Dank für deine rasche Hilfe.
Gruß,
Chris

In neue tabelle kopieren
25.03.2003 22:03:22
gordon

Zu beachten generell: Variablendefinition 'as Integer' bedeutet, daß Du max 32.767 Zeilen in einer Tabelle haben darfst, sonst gibt es einen Laufzeitfehler. Sollten es bei Dir mal mehr werden, alle Zeilenvariablen 'as Long' dimensionieren.

Kopien werden absteigend in Tabelle2 geschrieben, bei Bedarf wieder umsortieren, aber das kannst Du ja schon ;-)
Wenn Du es ganz schick machen willst, nicht cells.select und selection.sort... sondern den zu sortierenden Bereich einem range zuweisen (set DeinRange = worksheets("Tab1").Range("DeinBereich") und dann mit range.sort... sortieren.
Gruß
gordon


Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige