Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
940to944
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
940to944
940to944
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Doppelte Zeilen löschen ABER...

Doppelte Zeilen löschen ABER...
20.01.2008 17:11:00
Claudia
Hallo alle zusammen,
ich lösche mit nachstehenden Makro alle doppelten Zeilen, wenn in Spalte A der Wert doppelt vorkommt.

Public Sub doppelte()
Dim l As Long
For l = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If WorksheetFunction.Match(Cells(l, 1), [a:a], 0) 


Das Problem aber ist, das ich immer nur die Werte löschen darf die das ältere Datum haben. Dieses Datum steht aber in Spalte E. Die ganze Tabelle darf aber unter keinen Umständen sortiert werden.
Mit meinem Makro lösche ich immer von unten nach oben, egal wie der Wert in Spalte E ist.
Wer kann mir bitte mein Makro erweitern?
Vielen Dank
Gruß
Claudia

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

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Zeilen löschen ABER...
20.01.2008 17:29:00
Hajo_Zi
Hallo Claudia,
ich baue dies jetzt nicht nach

Option Explicit
Public Sub doppelte()
Dim l As Long
For l = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If WorksheetFunction.Match(Cells(l, 1), [a:a], 0)  WorksheetFunction.Min([E:E]) Then Rows(l).Delete
Next l
Application.ScreenUpdating = True
End Sub



AW: Doppelte Zeilen löschen ABER...
20.01.2008 17:31:10
Daniel
Hi
warum darf nicht sortiert werden?
hat das technische gründe wegen Formeln die sonst nicht funktionieren oder darfst du nur die Datei nicht verändern?
falls keine technischen Gründe vorliegen, würde ich im Makro so vorgehen:
- eine Hilfsspalte einfügen die einfach fix die Zahlenreihe 1 bis x enthält.
- Daten nach Spalte A und Spalte E sortieren
- in einer Schleife über alle Zellen in Spalte A die jeweiligen Zelle mit der Nachbarzelle vergleichen und bei gleichheit eine Zeile löschen
- über die Hilfsspalte zurücksortieren
- die Hifsspalte löschen
bei grossen Datenmengen dürfte diese Vorghehensweise auch schneller sein als deine Variante, da ein Wertevergleich von 2 Zellen schneller ist, als die MATCH-Funktion (hier müssen ja immer alle Werte verglichen werden)
Gruß, Daniel

Anzeige
AW: Doppelte Zeilen löschen ABER...
20.01.2008 18:05:00
Beverly
Hi Claudia,

Sub loeschen()
Dim raZelle As Range
Dim loErste As Long
Dim loZeile As Long
Dim loLetzte As Long
loLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
For loZeile = loLetzte To 1 Step -1
Set raZelle = Application.Range("A1:A" & loLetzte).Find(Cells(loZeile, 1), lookat:= _
xlWhole)
If Not raZelle Is Nothing Then
loErste = raZelle.Row
Set raZelle = Application.Range("A1:A" & loZeile).FindPrevious(raZelle)
If Cells(raZelle.Row, 5)  Cells(loErste, 5) Then
Rows(loErste).Delete
End If
End If
Next loZeile
Set raZelle = Nothing
End Sub




Anzeige
AW: An alle Antworter
20.01.2008 18:53:53
Claudia
Hallo alle Antworter zusammen,
vielen Dank an Dir Hajo und Karin, werde gleich mal Eure Lösungen ausprobieren.
An Daniel, ja, ich darf es nicht sortieren. In der Tabelle stehen so viele Infos drin und es sind ein Haufen Makros hinterlegt, da lasse ich mit meinen "noch" Erbärmlichen VBA Kenntnissen die Finger weg.
Danke und noch ein schönes Restwochenende.
Liebe Grüße Claudia

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige