Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1092to1096
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 nach Kriterium löschen

Zeilen nach Kriterium löschen
czaro
Hallo, wer kann mir bei meinem Makro helfen? Habe schon lange im Netz gesucht, aber nicht wirklich das gefunden was ich suche.
Ich habe eine lange Liste in Excel. In Spalte D sind Wochennummern eingetragen. Es sollen alle kompletten Zeilen gelöscht werden, wo in der Spalte D eine bestimmte Wochennummer enthalten ist. (praktisch sollen alle Einträge mit Wochennummer von letzter Woche gelöscht werden - diese Einträge stehen übrigens untereinander und nicht verstreut)
Problem: Bei meinem jetzigen Makro wird jede Zeile einzeln abgefragt und gelöscht - das dauert 2 Minuten. Gibt es die Möglichkeit alle Zeilen, die die Wochennummer X in Spalte D stehen haben, automatisch zu markieren und den ganzen Bereich auf einmal zu löschen?
Vielen Dank im Voraus

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

Betreff
Benutzer
Anzeige
AW: Zeilen nach Kriterium löschen
28.07.2009 16:19:17
Rudi
Hallo,
per Autofilter dauert's keine 10 Sekunden.
Gruß
Rudi
AW: Zeilen nach Kriterium löschen
28.07.2009 16:33:47
czaro
Danke für die zügige Antwort aber der Autofilter ist glaube ich keine Alternative. Wenn ich nicht daneben liege, muss doch beim Autofilter wieder manuell selektiert werden, was er anzeigen soll. Und dann müsste der User das wiederum selbst löschen.
Das Löschen ist nur ein Teil meines bereits "fertigen" Makros. Es ist nur ein Click nötig. Leider dauert es ewig, bis er die Daten der letzten Woche gelöscht hat. An der betroffenen Tabelle selber soll der User nichts mehr machen müssen.
AW: Zeilen nach Kriterium löschen
28.07.2009 16:42:00
Rudi
Hallo,
Sub loeschen()
Dim rDel As Range, r As Range
Application.ScreenUpdating = False
For Each r In Range(Cells(2, 4), Cells(Rows.Count, 4).End(xlUp))
If r = 30 Then  'Woche  anpassen
If rDel Is Nothing Then
Set rDel = r
Else
Set rDel = Union(r, rDel)
End If
End If
Next
If Not rDel Is Nothing Then rDel.EntireRow.Delete
Application.ScreenUpdating = True
End Sub

Gruß
Rudi
Anzeige
AW: Zeilen nach Kriterium löschen
28.07.2009 16:51:44
czaro
Danke Rudi,
das ist die Lösung. Es dauert nun kaum mehr als eine Sekunde beim Löschen.
Vielen vielen Dank
das geht doch auch ohne Makro
28.07.2009 16:21:11
Matthias
Hallo
Benutz doch den Autofilter
Filtere nach Deinem Kriterium also z. B in Spalte D filtern nach 23
Dann zeigt Excel nur alle Zellen mit 23 in Spalte D an.
Markiere dann die Zeilen und drück entfernen
Dannach schaltest Du den Filter wieder aus.
Fertig
Habs gerade unter XL2000 getestet und es klappte auf Anhieb und ruck zuck
Machs trotzdem erstmal mit einer Kopie Deiner Datei
Gruß Matthias
AW: das geht doch auch ohne Makro
28.07.2009 16:43:54
czaro
Danke für die Antwort,
es soll jedoch alles automatisch ablaufen ... gibt es da noch eine Lösung?
Anzeige
Per Autofilter filtern und dann löschen
28.07.2009 16:50:43
NoNet
Hallo czaro,
Du könntest die Liste zunächst per Autofilter nach der KW der Vorwoche filtern und dann die gefilterten Zeilen löschen. Der passende VBA-Code sieht so aus :
Sub LoescheKW_Per_Autofilter()
Dim intKW_Vorwoche As Integer
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
intKW_Vorwoche = (Date - 7 - DateSerial(Year(Date - 4 - ((Date - 9) Mod 7)), 1, ((Date - 9)  _
Mod 7) - 9)) / 7
[A1].AutoFilter Field:=4, Criteria1:=Str(intKW_Vorwoche)  'Filtern nach KW der Vorwoche
[A1].Resize(Cells(Rows.Count, 1).End(xlUp).Row).Offset(1).EntireRow.Delete
ActiveSheet.AutoFilterMode = False
End Sub
Das "flutscht" dann in "Null-Komma-Nix" ;-)
Gruß, NoNet
Anzeige
AW: Per Autofilter filtern und dann löschen
28.07.2009 17:02:26
czaro
Vielen Dank,
das werd ich auch gleich probieren.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige