Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
996to1000
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
Inhaltsverzeichnis

Doppelte Eintraege loeschen

Doppelte Eintraege loeschen
06.08.2008 10:41:00
Alex
Guten Morgen,
Ich habe ein kleines Problem und ich hoffe ihr koennt mir dabei helfen:
Ich habe eine Spalte mir sehr vielen Eintraegen, bei der zum Teil auch doppelte sind.
Ist es moeglich diese mit Hilfe einer Formel zu loeschen?
Oder benoetigt man hierfuer ein Makro oder ka?
Vielen Dank
Alex

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Eintraege loeschen
06.08.2008 10:46:59
Worti
Hallo Alex,
dazu eignet sich der Spezialfilter, da gibt es die Checkbox "Keine Duplikate"
Gruß Worti

AW: Doppelte Eintraege loeschen
06.08.2008 10:48:00
{mskro}
Hallo Alex,
reicht dir hier nicht der Spezialfilter, in dem du Duplikate ausblenden kannst?
Gruß Manfred

AW: Doppelte Eintraege loeschen
06.08.2008 10:58:23
Sven
Vielleicht hilft Dir der nachfolgende Code.

Sub DoppelteEinträgeLöschen()
Sheets("Tabelle1").Activate
Range("A1").Select
Do Until IsEmpty(ActiveCell)
If ActiveCell.Offset(1, 0).Value = ActiveCell.Value Then
ActiveCell.Offset(1, 0).EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End 

Sub

Anzeige
AW: Doppelte Eintraege loeschen
06.08.2008 12:55:57
Alex
HiHi
Also ich hab jetzt mal deinen Code kopiert und einfach nur das arbeitsblatt umbenannt, das muesset reichen oder? aber irgendwie funktioniert das nicht!
muss ich noch was aendern?
Danke schon mal

AW: Doppelte Eintraege loeschen
06.08.2008 15:24:00
mpb
Hallo Alex,
von dem Code werden nur Duplikate in aufeinanderfolgenden Zellen gelöscht, m.a.W. die Daten müssen sortiert sein. Versuche mal folgenden Code (Daten sollten in Spoalte A stehen, ansonsten den Code anpassen):

Sub Duplikate_weg()
Dim Rg As Range
Application.ScreenUpdating = False
z = Cells(65536, 1).End(xlUp).Row
For j = z To 1 Step -1
Set Rg = Range(Cells(1, 1), Cells(z, 1))
If Application.WorksheetFunction.CountIf(Rg, "=" & Cells(j, 1)) > 1 Then
Cells(j, 1).Delete shift:=xlShiftUp
End If
Next j
Application.ScreenUpdating = True
End Sub


Gruß
Martin

Anzeige
AW: Doppelte Eintraege loeschen
06.08.2008 16:12:12
Alex
HI
wenn ich das macro laufen lasse dann komm:
runtime error 1004
application defined or object defined error
weisst du was sein koennte?
danke

AW: Doppelte Eintraege loeschen
06.08.2008 16:21:00
mpb
Hallo Alex,
keine Ahnung, bei mir funktioniert's. Lade doch mal die Datei hoch.
Gruß
Martin

AW: Doppelte Eintraege loeschen
06.08.2008 16:31:03
Alex
alles klar! bei mir funktioniert das jetzt auch, das einzige ist, dass ich zwei spalten gleichzeitig loeschen moechte? kann man den code irgendwie umaendern, dass er immer die zwei nebeneinanderliegenden loescht?
Danke schon mal

AW: Doppelte Eintraege loeschen
06.08.2008 16:34:24
Alex
Oh datei vergessen! sorry hier ist sie:
https://www.herber.de/bbs/user/54385.xls
Nochmal vielen Dank schon mal

Anzeige
AW: Doppelte Eintraege loeschen
06.08.2008 21:10:00
mpb
Hallo,

Sub Duplikate_weg2()
'Löscht die ganze Zeile
Dim Rg As Range
Application.ScreenUpdating = False
z = Cells(65536, 1).End(xlUp).Row
For j = z To 1 Step -1
Set Rg = Range(Cells(1, 1), Cells(z, 1))
If Application.WorksheetFunction.CountIf(Rg, "=" & Cells(j, 1)) > 1 Then
Rows(j).Delete Shift:=xlUp
End If
Next j
Application.ScreenUpdating = True
End Sub



Sub Duplikate_weg3()
'Löscht die Zellen in den Spalten A und B
Dim Rg As Range
Application.ScreenUpdating = False
z = Cells(65536, 1).End(xlUp).Row
For j = z To 1 Step -1
Set Rg = Range(Cells(1, 1), Cells(z, 1))
If Application.WorksheetFunction.CountIf(Rg, "=" & Cells(j, 1)) > 1 Then
Range(Cells(j,1), Cells(j,2).Delete Shift:=xlUp
End If
Next j
Application.ScreenUpdating = True
End Sub


beides ungetestet.
Gruß
Martin

Anzeige
AW: Doppelte Eintraege loeschen
06.08.2008 21:18:00
alexDE
Hi Martin!
Habs eben versucht, es kommt die Meldung:
Fehler beim Kompilieren: Syntaxfehler
Und es wird angezeigt der Fehler liegt in der Zeile:
Range(Cells(j,1), Cells(j,2).Delete Shift:=xlUp
Irgendne Ahnung worans liegen könnte?
Danke mal wieder
ALEX

AW: Doppelte Eintraege loeschen
06.08.2008 21:24:00
Erich
Hi Alex,
da fehlt ne Klammer. Mach mal aus:
Range(Cells(j,1), Cells(j,2).Delete Shift:=xlUp
neu:
Range(Cells(j,1), Cells(j,2)).Delete Shift:=xlUp
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Doppelte Eintraege loeschen
06.08.2008 21:31:10
alexDE
Hey Martin es läuft wunderbar!
Vielen Dank für deine Mühen! Bin jetzt voll happy=)
Eine kleine Frage noch für die Zukunft wenn ichs mal wieder brauchen sollte:
Wenn man z.b. Duplikate aus Spalte D und E löschen will dann einfach:
Range(Cells(j,4), Cells(j,5).Delete Shift:=xlUp
Ist das richtig?
Nochmals vielen Dank
Alex

Anzeige
AW: Doppelte Eintraege loeschen
06.08.2008 21:32:00
alexDE
Oh es war nicht Martin!
Tut mir leid!
Danke Erich mein ich natürlich! Hoff du verzeist mir meinen Fehler!?

AW: Doppelte Eintraege loeschen
06.08.2008 22:54:00
mpb
Hallo Alex,
ja, wenn Du die zweite schließende Klammer nicht (wie ich) vergisst. ;-)
Gruß
Martin

AW: Doppelte Eintraege loeschen
07.08.2008 10:53:00
Alex
Hallo noch eine Frage,
kann man den Code auch so aendern ohne dass es zu schwer wird, dass Zellen in denen Null steht nicht geloescht werden?
hier nochmal der Code:

Sub Duplikate_weg3()
'Löscht die Zellen in den Spalten A und B
Dim Rg As Range
Application.ScreenUpdating = False
z = Cells(65536, 1).End(xlUp).Row
For j = z To 1 Step -1
Set Rg = Range(Cells(1, 1), Cells(z, 1))
If Application.WorksheetFunction.CountIf(Rg, "=" & Cells(j, 1)) > 1 Then
Range(Cells(j, 1), Cells(j, 2)).Delete Shift:=xlUp
End If
Next j
Application.ScreenUpdating = True
End Sub


Nochmals bereits jetzt vielen Dank
Alex

Anzeige
AW: Doppelte Eintraege loeschen
06.08.2008 11:09:26
Daniel
Hallo
mit einer Formel kannst du nichts löschen, aber du kannst mit einer Formel die Doppelten Einträge kennzeichnen, bspw in
- unsortierten Listen mit ZÄHLENWENN
Beispiel für Spalte A : =ZählenWenn(A:A;A1)
es wird direkt angezeigt, wie oft ein Wert in der Liste vorkommt.
- sortierte Listen: mit einfachem Zellvergleich:
Beispiel für Spalte A (in Zeile 2): =Wenn(oder(A2=A1;A2=A3);"x";"")
hier werden alle doppelt vorkommenden Werte mit einem X gekennzeichnet.
wenn zum Löschen immer ein Eintrag stehen bleiben soll, dann musst du die formeln etwas umbauen, damit der Ersteintrag nicht mitmarkiert wird:
- unsortierte Liste: =wenn(ZählenWenn($a$1:a1;a1)>1;"x";"")
- sortierte Liste (in Zeile 2) : =Wenn(A2=A1;"x";"")
dann kannst du mit dem Autofilter die doppelten Einträge filtern und löschen.
bei grossen Datenmengen empfiehlt es sich, immer mit Sortierten Daten zu arbeiten und auch vor dem Löschen umzusortieren, so daß alle zu löschenden Zeilen lückenlos untereinander stehen.
dazu empfielt es sich, vor dem Sortieren in der Hilfsspalte die Formeln durch Werte zu ersetzen (Kopieren - Inhalte einfügen - WERTE)
Gruß, Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige