Zeilen mit Null löschen

Bild

Betrifft: Zeilen mit Null löschen
von: lau
Geschrieben am: 26.07.2015 18:44:20

Hallo zusammen,
bräuchte ein Makro, der im Datenblatt 10 und Spalte E alle Zellen absucht und diejenigen die eine Null ausweisen, da soll die Zeile komplett gelöscht werden.
unteres Makro hängt sich auf und löscht nichts. Die Datei ist sehr groß.
Die Arbeitsmappe hesst "Portfolio" und das Makro habe ich im Modul 1 abgelegt.

Sub Zeilen_loeschen()
Dim loeschen As Double
For loeschen = Worksheets(10).Cells(Rows.Count, 5).End(xlUp).Row To 1 Step -1
If Cells(loeschen, 1).Value = "" Then
Rows(loeschen).Delete
End If
Next loeschen
End Sub

Hat jmd. eine Idee warum das Makro nicht läuft?
Viele Grüße

Bild

Betrifft: AW: Zeilen mit Null löschen
von: Michael
Geschrieben am: 26.07.2015 18:59:48
Hi lau,
versuch's mal damit:

Sub Zeilen_loeschen()
Dim loeschen As Long, zeilen As Long
Worksheets(10).Select
zeilen = Range("E" & Rows.Count).End(xlUp).Row
For loeschen = zeilen To 1 Step -1
If Cells(loeschen, 5).Value = "" Then
Rows(loeschen).Delete
End If
Next loeschen
End Sub
Wenn das Ding in einem Modul steckt, löscht es im gerade aktiven Blatt, also solltest Du zunächst ins Blatt 10 wechseln.
In Deinem IF fragst Du die Spalte 1, also "A" ab, nicht die Spalte E.
Schöne Grüße,
Michael

Bild

Betrifft: AW: Zeilen mit Null löschen
von: lau
Geschrieben am: 26.07.2015 19:28:11
Hallo Michael,
vielen Dank. Das Makro läuft.
Habe aber ein Performanceproblem.
Es müssen ca. 70000 Zeilen überprüft werden und das Makro braucht extrem lange.
Kann man das irgendwie bechleunigen?
Viele Grüße

Bild

Betrifft: AW: Zeilen mit Null löschen
von: robert
Geschrieben am: 26.07.2015 19:50:11
Hi,
teste mal das.

Sub Leere()
Range("E1:E100000").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Gruß
robert

Bild

Betrifft: AW: Zeilen mit Null löschen
von: Daniel
Geschrieben am: 26.07.2015 22:04:26
Hi
wenns schnell gehen soll bei grossen Datenmengen, dann teste mal:

with Activesheet.Usedrange
    with .columns(columns.count + 1)
       .formulaR1C1 = "IF(RC5="""",0,row())"
       .cells(1, 1).value = 0
       .EntireRow.Removeduplicates .column, xlno
       .ClearContents
    End With
End with
Gruss Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeilen mit Null löschen"