Supportnet / Forum / Tabellenkalkulation
Doppelte Zeilen in Excel löschen
Frage
Hi Leute,
habe hier eine Excel Datei mit einigen hundert eMails die zeilenweise Untereinander geschrieben sind. Diese Datei (Tabelle) will ich jetzt durchsuchen lassen und alle eMail Adressen die doppelt sind löschen. Das heißt natürlich nicht komplett sondern nur die doppelten Einträge, ein Eintrag jeder Adresse sollte mir natürlich erhalten bleiben.
Danke im Vorraus
Antwort 1 von want2cu
Hallo LowNoise,
vielleicht könntest du das über DATEN-FILTER-SPEZIALFILTER - KEINE DUPLIKATE lösen.
Ansonsten gibt es dafür bestimt eine Makro-Lösung ;-) (kann ich immer noch nicht)
CU
Klaus
vielleicht könntest du das über DATEN-FILTER-SPEZIALFILTER - KEINE DUPLIKATE lösen.
Ansonsten gibt es dafür bestimt eine Makro-Lösung ;-) (kann ich immer noch nicht)
CU
Klaus
Antwort 2 von Guenter
Hallo,
hier ist ein Makro, das ich bei Herber gefunden habe.
Spalte A enthält die zu überprüfenden Zellen.
Ich würde empfehlen, vorher eine Sicherheitskopie zu erstellen!
Gruß
Günter
hier ist ein Makro, das ich bei Herber gefunden habe.
Spalte A enthält die zu überprüfenden Zellen.
Sub doppelteLöschen()
Dim LastC As Long, x As Long
LastC = Range("a65536").End(xlUp).Row
For x = LastC To 1 Step -1
If WorksheetFunction.CountIf(Range("a1:a" & x), Cells(x, 1)) > 1 Then
Cells(x, 1).EntireRow.Delete
End If
Next
End Sub
Ich würde empfehlen, vorher eine Sicherheitskopie zu erstellen!
Gruß
Günter
Antwort 3 von nighty
hi alle
ich mag herberts site immer noch nicht,daher gleich eine verbesserung des makros von GUENTHER.bei dem von guenther werden 65 000 zeilen abgelaufen ,bei meinem modifizierten nur bis zur letzten beschriebenen zeile TATAAA(dank SICCI).
gruss nighty
nicht getestet schniff
Sub Makro1()
Dim LastC As Long, x As Long
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
alta = LastCell.Row
A = LastCell.Row
Do While Application.CountA(Rows(A)) = 0 And A <> 1
A = A - 1
Loop
alta = A
altb = LastCell.Column
b = LastCell.Column
Do While Application.CountA(Columns(b)) = 0 And b <> 1
b = b - 1
Loop
altb = b
lzeile = alta
lspalte = altb
For x = 1 To lzeile + 1
If WorksheetFunction.CountIf(Range("a1:a" & x), Cells(x, 1)) > 1 Then
Cells(x, 1).EntireRow.Delete
End If
next x
End Sub
ich mag herberts site immer noch nicht,daher gleich eine verbesserung des makros von GUENTHER.bei dem von guenther werden 65 000 zeilen abgelaufen ,bei meinem modifizierten nur bis zur letzten beschriebenen zeile TATAAA(dank SICCI).
gruss nighty
nicht getestet schniff
Sub Makro1()
Dim LastC As Long, x As Long
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
alta = LastCell.Row
A = LastCell.Row
Do While Application.CountA(Rows(A)) = 0 And A <> 1
A = A - 1
Loop
alta = A
altb = LastCell.Column
b = LastCell.Column
Do While Application.CountA(Columns(b)) = 0 And b <> 1
b = b - 1
Loop
altb = b
lzeile = alta
lspalte = altb
For x = 1 To lzeile + 1
If WorksheetFunction.CountIf(Range("a1:a" & x), Cells(x, 1)) > 1 Then
Cells(x, 1).EntireRow.Delete
End If
next x
End Sub
Antwort 4 von Guenter
@ nighty
Ich weiss nicht, was Du meinst?
Die For ... Next-Schleife fängt bei der letzten beschriebenen Zelle an.
Das wird erreicht durch:
Aber
geht auch.
Gruß
Günter
Ich weiss nicht, was Du meinst?
Die For ... Next-Schleife fängt bei der letzten beschriebenen Zelle an.
Das wird erreicht durch:
LastC = Range("a65536").End(xlUp).Row
Aber
LastC = Cells(Rows.Count, 1).End(xlUp).Rowgeht auch.
Gruß
Günter
Antwort 5 von nighty
hi guenther
oops ich sah wohl nur die 65000 ohjee
gruss nighty
oops ich sah wohl nur die 65000 ohjee
gruss nighty

