Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1188to1192
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 schneller löschen

Zeilen schneller löschen
Jens
Moin zusammen,
in meiner Tabelle benutze ich zum löschen von Zeilen mit "0" in Spalte A z.Zt. folgendes Makro Sub Zeilen_loeschen() Dim z As Long, lZ As Long lZ = Sheets("xyz").Cells(65536, 2).End(xlUp).Row For z = lZ To 13 Step -1 With Sheets("xyz") If .Cells(z, 1) = "0" Then .Rows(z).Delete End With Next End Sub
Die Tabelle hat ca. 3000 Zeilen. Bisher dauert das löschen recht lange.
Wenn in Spalte A z.B. in A358 eine "0" steht auch in allen folgenden Zeilen in Spalte A (A359 ff...A3000) eine "0".
Meine Idee ist nun folgende. Finde die erste Zelle in Spalte A mit "0", und lösche diese und alle folgende Zeilen (egal was in Spalten B, C, D....steht) bis Zeile 3000. Ich verspreche mir davon eine erhebliche Beschleunigung.
Kann mir jemand von Euch auf die Sprünge helfen?
Beste Grüße
Jens

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeilen schneller löschen
08.12.2010 09:18:22
hary
Hallo Jens
Teste mal dies mit sortieren.

Dim zelle As Range
Application.ScreenUpdating = False
Range("A1").Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Set zelle = Columns(1).Find(what:=0, LookIn:=xlValues)
Rows(zelle.Row & ":" & Cells(Rows.Count, 1).End(xlUp).Row).Delete
Application.ScreenUpdating = True
Set zelle = Nothing

gruss hary
AW: Zeilen schneller löschen
08.12.2010 11:03:20
Jens
Hallo Harry,
vielen Dank für Deinen Vorschlag. Leider wird die gesamte Tabelle gelöscht. Nur in A1 steht noch eine Null. Hier zum besseren Verständnis die Beispieldatei.
https://www.herber.de/bbs/user/72642.xls
Der Kopf der Tabelle soll erhalten bleiben und ab in diesem Fall Zeile 19 alle folgenden Zeilen gelöscht werden.
Gruß Jens
Anzeige
AW: Zeilen schneller löschen
08.12.2010 11:29:02
hary
Hallo Jens
wenn die Nullen immer unten stehen, reicht.

Dim zelle As Range
Application.ScreenUpdating = false
Set zelle = Range("A15:A" & Cells(Rows.Count, 1).End(xlUp).Row).Find(what:=0, LookIn:=xlValues)
Rows(zelle.Row & ":" & Cells(Rows.Count, 1).End(xlUp).Row).Delete
Application.ScreenUpdating = True
Set zelle = Nothing

gruss hary
AW: Zeilen schneller löschen
08.12.2010 12:10:55
Jens
Hallo Harry,
das klappt schon ganz gut. Nur leider löscht er alle Einträge die eine Null enthalten. z.B. "Teile A01B". Wie kann ich das Makro abändern, das die Zeilen gelöscht werden die genau Null sind. Ich vermute hier "....Find(what:=0, LookIn:=xlValues)" muß ich was ändern oder?
Gruß Jens
Anzeige
AW: Zeilen schneller löschen
08.12.2010 12:33:38
Jens
Hallo Harry, hab nach etwas suchen die Lösung gefunden:
Find(0, LookAt:=xlwhole)
Vielen Dank für Deine Hilfe. Ohne diese wäre ich nicht weitergekommen.
Gruß Jens

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige