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

Zeilen löschen nach Kriterium

Zeilen löschen nach Kriterium
21.08.2015 12:44:03
Hannes
halli Hallo,
ich habe foglendes Problem.
Ich habe mir eine Liste generiert mit allen Dateien eiens bestimmten Typs in einen Ordner. jetzt möchte ich gerne alle Dateien die ÄLTER als ein bestimmtes Datum sind aus dieser Liste entfernen, dabei soll die ganze Zeile entfernt werden.
Mein derzeitiger Code braucht bei den über 3.000 Zeilen sehr sehr lange. Wie kann der Code beschelunigt werden. Ist eventuell ein Filter sinnvoll? Wenn ja wie kann ich diesen mit VBA setzten?
Hier mein Code:
'###### 3. alle werte die älter&gleich dem letzten Eintrag sind löschen
letztertag = (Range("D6").Value) 'letzter Tag in String konvertieren
anzdateien = Worksheets("Einzulesende Dateien").Cells(Rows.Count, 1).End(xlUp).Row
For j = 1 To anzdateien
If Cells(j, 6).Value 

Danke im Vorraus!

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen nach Kriterium
21.08.2015 12:55:13
Daniel
Hi
seit Excel 2007 ist folgende Methode die beste (schnell und einfach!)
1. schreibe in eine Hilfsspalte am am Tabellenende eine Formel, welche die zu löschenden Zeilen mit 0 kennzeichnet und die anderen mit der aktuellen Zeilennummer
in deinem Fall wäre das die Formel (für zeile 2): =wenn($F2<Tabelle1!$D$6;0;Zeile())
2. schreibe in die Überschriftenzeile der Hilfsspalte (die Überschriftenzeile wird hier benötigt) ebenfalls die 0
3. Wende auf die ganze Tabelle die Funktion "Daten - DATENTOOLS - DUPLIKATE ENTFERNEN" an, mit der Hilfsspalte als Kriterium und der option "keine Überschrift"
4. Lösche die Hilfsspalte wieder
alternativ kannst du natürlich auch den Autofilter einsetzen, um die betroffenen Zeilen zu filtern und dann zu löschen.
Wie du den Autofilter per VBA aktivierst, zeigt dir doch der Makrorecorder und ggf ein Blick in die Excelhilfe.
allerdings beschleunigt das Filtern das Löschen nur dann, wenn die zu löschenden Zeilen wenige, dafür aber möglichst grosse lückenlos zusammenhängende Blöcke bilden.
dh es ist dann sinnvoll, die Liste vorher zu sortieren (auch da hilft dir der Recorder).
in einer Sortierten Liste könntst du die Zeilennummer der letzen zu löschenden Zeile auch mit der Vergleichsfunktion bestimmen (Worksheetfunction.Match) so dass du die Zeilen als Block direkt löschen kannst, ohne Filter und ohne Schleife (das wäre die schnellste Methode)
gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige