Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
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

Doppelte Zeilen löschen

Doppelte Zeilen löschen
03.03.2009 10:10:55
Andreas
Hallo ,
brauch wieder ein mal die Hilfe aus diesem Forum.
Habe eine Datei mit Datensätze.
In der Spalte B kommen die Zahlen doppelt vor, es soll nur einmal die Zahl und die dazu gehörende Zeile vorkommen.
Die anderen Zeilen sollen gelöscht werden.
Habe dieses Makro aus dem Netz

Sub DoppelteSätzeRauswerfen()
'zuerst sortieren
Columns("B:B").Select
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'jetzt doppelte Sätze rausschmeißen
Range("B1").Select
Do Until ActiveCell.Value = ""
If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
EndIF
Loop
End Sub


bringt leider einen Laufzeitfehler 1004
Kann mir jemand helfen und diesen anpassen.
Mfg
Andreas

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Zeilen löschen
03.03.2009 10:25:44
Oberschlumpf
Hi Andreas
Hab den Code getestet - und keine Probleme festgestellt.
Vielleicht zeigst du uns mal eine Bsp-Datei, in der der von dir erwähnte Fehler auftritt.
Ciao
Thorsten
AW: Doppelte Zeilen löschen
03.03.2009 11:56:32
Uwe
Hi Andreas,
also ich finde das ganze Makro ziemlich vermurkst, kann den Laufzeitfeheler allerdings auch nicht nachvollziehen, zumal Du nicht schreibst, in welcher Zeile er auftritt. Versuch vielleicht mal das hier:

Sub DoppelteLöschen()
Dim Spalte As Integer
Dim L As Long
Spalte = 2  '2=Spalte B, für ander Spalten anpassen
For L = Cells(Rows.Count, Spalte).End(xlUp).Row To 1 Step -1
If WorksheetFunction.CountIf(Columns(Spalte), Cells(L, Spalte)) > 1 Then _
Cells(L, Spalte).EntireRow.Delete
Next L
End Sub


Bitte genau testen (und vorher Daten sichern).
Gruß
Uwe
(:o)

Anzeige
AW: Doppelte Zeilen löschen
03.03.2009 12:14:55
Andreas
Hallo Torsten und Uwe,
ich danke euch für die schnelle Hilfe.
Habe den Cod vom Uwe auf die Schnelle getestet, er löscht die doppelten Zeilen.
Muß nun aber noch prüfen ob er auch andere Zeilen löscht die er nicht soll.
Also noch mals vielen dank.
Gruß Andreas
AW: warum Doppelte Löschen immer mit Schleife?
03.03.2009 22:28:33
Daniel
ist doch viel zu langsam.
so gehts in der regel auch bei vielen Datensätzen in Sekundenbruchteilen

Sub DoppelteLöschen()
With ActiveSheet.UsedRange
.Sort Key1:=.Cells(1, 2), order1:=xlAscending, Header:=xlGuess
With .Columns(.Columns.Count).Offset(0, 1)
.FormulaR1C1 = "=IF(RC2=R[1]C2, """", Row())"
.Formula = .Value
.EntireRow.Sort Key1:=.Cells(1, 1), order1:=xlAscending, Header:=xlGuess
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
.EntireColumn.Delete
End With
End With
End Sub


Gruß, Daniel

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige