Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1052to1056
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

Liste von Dubletten bereinigen

Liste von Dubletten bereinigen
22.02.2009 19:16:53
Dubletten
Moin,
ich habe mal eine Frage. Ich habe eine Tabelle, wo in der 1.Spalte verschiedene Werte stehen. Viele Werte kommen doppelt vor. Ich möchte nun diese Liste so bereinigen, dass nur noch jeder Wert einmal vorkommt. Seine Dubletten sollen gelöscht werden. Daher habe ich folgenden Code geschrieben:

Sub Test()
Dim count As Integer
count = 1
Do
If ThisWorkbook.Sheets("KST").Cells(count, 1).Value = "" Then
Exit Do
ElseIf ThisWorkbook.Sheets("KST").Cells(count, 1).Value  ThisWorkbook.Sheets("KST"). _
Cells(count + 1, 1).Value Then
count = count + 1
ElseIf ThisWorkbook.Sheets("KST").Cells(count, 1).Value = ThisWorkbook.Sheets("KST"). _
Cells(count + 1, 1).Value Then
ThisWorkbook.Sheets("KST").Cells(count + 1, 1).ClearContents
ThisWorkbook.Sheets("KST").Cells.Sort Key1:=ThisWorkbook.Sheets("KST").Range("A1"),  _
Order1:=xlAscending, _
Key2:=ThisWorkbook.Sheets("KST").Range("B1"), Order2:=xlAscending, Header:=xlGuess,  _
OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
End If
Loop
End Sub


Dieser funktioniert auch. Leider kann die Ausführung sehr lange dauern, wenn es recht viele Werte in der 1.Spalte gibt. Bei meiner Liste sind es über 400 und das zieht sich dann schon ein wenig. Gibt es vielleicht eine schnellere Methode?
Vielleicht noch ein Denkansatz: Die ganzen Werte holt sich die Excel-Datei aus einer anderen Datei. Kann man hier sonst ansetzen, was dann vielleicht schneller ginge?
Gruß
Gordon

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

Betreff
Datum
Anwender
Anzeige
AW: Liste von Dubletten bereinigen
22.02.2009 19:21:55
Dubletten
Hallo Gordon,
warum Makro?
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.

Anzeige
AW: Liste von Dubletten bereinigen
22.02.2009 20:34:10
Dubletten
Danke dir schon mal.....kannte diese Funktion noch nicht so richtig in Excel...Hatte sie nie bisher gebraucht!
Hab jetz mal etwas rumprobiert....klappt gut....aber wie ist es, wenn in der Spalte B noch dazugehörige Werte stehen......wie gehe ich da vor?
Gruß
Gordon
AW: Liste von Dubletten bereinigen
22.02.2009 20:39:25
Dubletten
Hallo
Bei EXCEL GUT sollte der Aufruf der EXCEL HILFE zu den Grundbegriffen gehören.
Was hälst du davon einfach mal den Datenbereich von A:B anzugeben ?
Ansonsten schau mal hier vorbei
http://www.online-excel.de/excel/singsel.php?f=6
Gruss Rainer
Anzeige
AW: Liste von Dubletten bereinigen
22.02.2009 20:44:07
Dubletten
Deine Spitze im ersten Satz übersehe ich mal um hier keine schärfe reinzubringen.
Habe natürlich schon einiges versucht und nicht blind gleich weitergefragt um vielleicht dich etwas zu beruhigen. Habe natürlich den Datenbereich vergrößert und es ging dennoch nicht bei mir!
Habe aber nun den Fehler gefunden...hatte dummerweise nur eine Überschrift angegeben. Sorry das ich dich hier belästigt habe!
Dennoch danke für die Hilfe.
Gruß
Gordon
AW: Liste von Dubletten bereinigen
22.02.2009 20:48:00
Dubletten
Hallo
"....hatte dummerweise nur eine Überschrift angegeben.."
Dann hat es ja funktioniert mit der Spitze ;-)
Gruss Rainer
Anzeige
AW: Liste von Dubletten bereinigen
22.02.2009 20:00:21
Dubletten
Hi
der schnellste Weg, um Doubletten auch bei grossen Datenmengen zu löschen, ist folgender:

Sub Doppelte_Löschen()
With ThisWorkbook.Sheets("KST")
.Cells(1, 1).CurrentRegion.Sort Key1:=.Cells(1, 1), order1:=xlAscending, header:=xlYes
.Columns(1).Insert
With .Cells(1, 2).CurrentRegion.Columns(1).Offset(0, -1)
.FormulaR1C1 = "=if(RC2=R[1]C2,"""",Row())"
.Formula = .Value
.CurrentRegion.Sort Key1:=.Cells(1, 1), order1:=xlAscending, header:=xlYes
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
.EntireColumn.Delete
End With
End With
End Sub


gruß, Daniel

Anzeige
AW: Liste von Dubletten bereinigen
22.02.2009 20:37:38
Dubletten
Stimmt,
geht echt fix mit dem Code....aber verstehe ihn leider nicht! :(
AW: Liste von Dubletten bereinigen
22.02.2009 20:59:10
Dubletten
Hi
wieso?
ist eigentlich ganz einfach, so wie man das Problem auch ohne Makro von Hand am schnellsten lösen könnte.
- Daten sortieren
- Hilfspalte einfügen
- Formel einfügen, die alle zu löschenden Zeilen kennzeichnet (Leer, für die andern die Zeilen-Nr)
- Daten nochmal sortieren (nicht zwingend notwendig, machst es aber noch schneller)
- über BEARBEITEN - GEHE ZU INHALTE - LEERZELLEN die zu löschenden Zellen in der Hilfsspalte selektieren und ganze Zeile löschen
klick den Code mal im Einzelstepmodus durch und schau dir nach jedem Schritt die Tabelle an, dann wird es vielleicht klarer
Gruß, Daniel
Gruß, Daniel
Anzeige
AW: Liste von Dubletten bereinigen
22.02.2009 23:28:36
Dubletten
Ok,
jetzt hab ich es doch noch verstanden....die eine Codezeile hatte mich etwas ins grübeln gebracht...aber durch ausprobieren und beobachten hat es dann doch noch "klick" gemacht. Danke dir.
Gruß
Gordon

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige