Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
428to432
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
428to432
428to432
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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! :-(
Anzeige
?
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
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
---
21.05.2004 16:55:31
Gustel
danke an alle, es geht jetzt!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige