Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
752to756
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
752to756
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Doppelte Reihen löschen - Wie?

Doppelte Reihen löschen - Wie?
07.04.2006 15:52:09
Frank
Hallo Leute!
Ich habe ein kleines Problem. Ich würde gerne innerhalb eines Excel-Tabellblattes doppelte Reihen mittels Makro aufspüren und löschen.
Ich habe schon den Spezialfilter aufgezeichnet:
Application.CutCopyMode = True
Range("A1:N20").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Hier werden die doppelten Zeilen aber nur ausgeblendet und nicht gelöscht.
Ich bräuchte im Prinzip eine modifizierte Version des Codes des AdvancedFilter. Ich könnte dann statt des Befehls Row.hide den Befehl Row.delte benutzen.
So oder ähnlich stelle ich mir das jedenfalls vor.
Kann mir jemand helfen?
Gruß
Frank

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Reihen löschen - Wie?
07.04.2006 15:53:57
Fred
Hi,
nicht xlFilterInPlace sondern an anderer Stelle filtern.
mfg Fred
Filter andere Stelle ungünstig
07.04.2006 16:12:13
Frank
Hallo Fred!
Danke für den Tipp.
Filtern an eine andere Stelle wollte ich nicht, da ich meine Daten im bearbeiteten Tabellenblatt benötige. Wenn ich in ein anderes Tabellenblatt filtere und dann das alte lösche, danach dann das neue in das alte umbenenne, hätte ich zwar was ich wollte, aber das muss doch auch einfacher gehen, oder?
Gruß
Frank
AW: Fehler 91
07.04.2006 17:15:27
Frank
Hallo Beate!
Habe den Code zwar nur zur Hälfte verstanden, aber einfach mal so kopert und eingesetzt.
Leider bekomme ich eine Fehlermeldung in dieser Zeile:
For lngRow = .AutoFilter.Range.Areas.Item(1).Count To 1 Step -1
Objektvariable oder With-Blockvariable ist nicht festgelegt.
Hast Du eine Idee, was ich da vergessen haben könnte?
Gruß
Frank
Dubletten löschen
07.04.2006 17:46:54
Beate
Hallo Frank,
habe wohl übersehen, dass in dem Code Autofilter angesprochen wird, den du ja nicht im Einsatz hast.
Nun mal ein ganz anderer Ansatz ohne Filter:
Dafür musst du die Daten aber zuerst sortieren, so dass die Dubletten hintereinander stehen.
Dann das Makro, du musst aber um sicher zu gehen, dass es wirklich Dubletten sind, alle deine Spalten prüfen lassen, im Augenblich werden ja nur die ersten 3 Spalten auf Dubletten geprüft (ab Zeile 2, d.h Überschriften liegen in Zeile 1, musst du anpassen):

Sub DelDouble()
Dim i As Long
For i = Cells(65536, 1).End(xlUp).Row To 2 Step -1
If Cells(i, 1).Value = Cells(i - 1, 1).Value And _
Cells(i, 2).Value = Cells(i - 1, 2).Value And _
Cells(i, 3).Value = Cells(i - 1, 3).Value Then
Rows(i).Delete
End If
Next
End Sub

Ich glaube aber, die Idee mit der Spezialfilterkopie ohne Dubletten und dann wieder zurückkopieren ist schneller.
Gruß,
Beate
Anzeige
AW: Dubletten löschen
07.04.2006 18:27:48
Frank
Hallo an die lieben Helfer!
Habe jetzt mehrere vorgestellte Varianten probiert.
Folgende habe ich mir nun zusammengestrickt. Es ist klar die schnellste und kürzeste Variante(ich habe ca. 50000 Zeilen zu bearbeiten):

Private Sub CommandButton3_Click()
Dim z1 As Long
z1 = ActiveSheet.UsedRange.Rows.Count
Range("A1").Select
Selection.CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("A" & z1 + 1), Unique:=True
Range("A1:N" & z1).Delete
End Sub

Vielen Dank an alle!
Dubletten löschen Spezialfilter
07.04.2006 20:22:38
Beate
Hallo Frank,
sehr schön gelöst! Danke für das Reinstellen deiner Lösung.
Gruß,
Beate
Anzeige
AW: Filter andere Stelle ungünstig
07.04.2006 16:40:11
Fred
Hi,
egal wie du es machst, das Makro braucht nur Sekundenbruchteile.
mfg Fred

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige