Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellen schneller löschen?

Forumthread: Zellen schneller löschen?

Zellen schneller löschen?
21.05.2004 13:48:44
Gustel
Hallo
ich habe folgene Formel, die auch wunderbar funktioniert!
Allerdings braucht sie zum löschen der Zeilen 4 Minuten!
Geht dass nicht irgendwie schneller?
danke
Sub Loeschen()
'
' loeschen Makro
' Makro am 13.05.2004 von Gu aufgezeichnet
'
' Tastenkombination: Strg+l
'
Dim lgCount As Long
'ggf. den Tabellennamen anpassen
With Sheets("ESD")
'Bereich Zeilen 5 bis 5000
For lgCount = 5000 To 5 Step -1
If WorksheetFunction.CountA(.Range("A" & lgCount & ":H" & lgCount)) = 0 Then
.Rows(lgCount).Delete
End If
Next
End With
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen schneller löschen?
K.Rola
Hallo,
VBA ist nun mal kein Printer, der Code ist ok. Damit kannst du es
wesentlich schneller bekommen:

Sub Beschleunigen()
On Error GoTo ENDE
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Dim lgCount As Long
'ggf. den Tabellennamen anpassen
With Sheets("ESD")
'Bereich Zeilen 5 bis 5000
For lgCount = 5000 To 5 Step -1
If WorksheetFunction.CountA(.Range("A" & lgCount & ":H" & lgCount)) = 0 Then
.Rows(lgCount).Delete
End If
Next
End With
ENDE:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub

Gruß K.Rola
Anzeige
AW: Zellen schneller löschen?
Martin
Hallo Gustel,
versuchs mal so:

Sub Loeschen()
' loeschen Makro
' Makro am 13.05.2004 von Gu aufgezeichnet
' Tastenkombination: Strg+l
Dim lgCount As Long
Dim z As Long
Application.ScreenUpdating = False
z = Sheets("ESD").UsedRange.Count
'ggf. den Tabellennamen anpassen
With Sheets("ESD")
'Bereich Zeilen 5 bis z
For lgCount = z To 5 Step -1
If WorksheetFunction.CountA(.Range("A" & lgCount & ":H" & lgCount)) = 0 Then
.Rows(lgCount).Delete
End If
Next lgCount
End With
Application.ScreenUpdating = True
End Sub

Gruß
Martin Beck
Anzeige
Noch schneller
Martin
Hallo Gustel,
wenn in allen Zeilen der Bereich von Spalte A bis H entweder vollständig gefüllt oder vollständig leer ist geht es am schnellsten mit folgendem Einzeiler:

Sub weg()
Sheets("ESD").Columns("A:H").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Gruß
Martin Beck
Anzeige
AW: Noch schneller
21.05.2004 14:24:15
Gustel
Oh weh, ich bin doch kein VBA Experte!
Kann mir einer von euch freaks aus meinem Quellcode nen neuen super schnellen basteln?
Dankeschön schonmal an meine retter! :-)
:-(
21.05.2004 14:39:08
Gustel
Bei dieser Formel kommt die meldung:
Bei Überlappung ist diese Formel nicht möglich! :-(
?
Martin
Hallo Gustel,
ich kapier nix mehr. Du hast 3 Codes geliefert bekommen (1x von K.Rola, 2 von mir). Hast Du die ausprobiert? Ich habe meine Codes getestet und auch der von K.Rola funktioniert. Wenn es bei Dir nicht geht, beschreibe genau, was Du gemacht hast, welcher Fehler auftritt und welche Codezeile ggf. gelb markiert ist.
Dann redest Du noch von Formeln. Hier gibt es keine Formeln, nur Code/Makros. Also, wo ist das Problem?
Gruß
Martin Beck
Anzeige
AW: Zellen schneller löschen?
21.05.2004 15:17:13
Uwe
Hallo Gustel,
ich hätte auch noch eins:

Sub LeereZeilenLoeschen()
Dim B As Range
Dim R As Range
On Error GoTo Ende
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Set B = Sheets("ESD").Range("A5:H5000").SpecialCells(xlCellTypeBlanks)
For Each R In B.EntireRow
If Intersect(B, R).Cells.Count = 8 Then R.Delete
Next R
Ende:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub

@Martin:
Dein zweiter Vorschlag löscht alle Zeilen, in denen wenigstens eine leere Zelle ist.
Gruß Uwe
Anzeige
AW: Zellen schneller löschen?
Martin
Hallo Uwe,
Du hast Recht, aber deswegen hatte ich ja geschrieben, daß der Code nur dann angewendet werden soll, wenn alle Zellen einer Zeile in den Spalten A:H entweder gefüllt oder leer sind. ;-)
Gruß
Martin Beck
@Martin
21.05.2004 15:56:55
Uwe
Hallo Martin,
hach ja, ich sollte doch immer die Brille aufsetzen. ;)
Gruß Uwe
Anzeige
---
21.05.2004 16:55:31
Gustel
danke an alle, es geht jetzt!!
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige