Microsoft Excel

Herbers Excel/VBA-Archiv

Leere Zeilen löschen

Betrifft: Leere Zeilen löschen von: Gallanz
Geschrieben am: 02.11.2012 21:36:03

Hallo,

ich weiß nicht wieso, aber ich habe in einer Excel Tabelle >1.000.000 Zeilen. Ich möchte nun ab Zeile 530 alles löschen, aber dabei stürzt Excel ständig ab. Kann man das evtl. mit VBA lösen ohne Abstürze?

Gruß
Gallanz

  

Betrifft: AW: Leere Zeilen löschen von: Hajo_Zi
Geschrieben am: 02.11.2012 21:52:02


Sub Leerzeilen_loeschen()
    '   alle Leerzeilen löschen
    Dim LoI As Long
    Dim RaZeile As Range
    Application.ScreenUpdating = False
    For LoI = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
        If Application.WorksheetFunction.CountA(Rows(LoI)) <> ActiveSheet.UsedRange. _
SpecialCells(xlCellTypeLastCell).Column Then
            If Rows(LoI).SpecialCells(xlCellTypeBlanks).Count = ActiveSheet.UsedRange. _
SpecialCells(xlCellTypeLastCell).Column Then
                If RaZeile Is Nothing Then
                    Set RaZeile = Rows(LoI)
                Else
                    Set RaZeile = Union(RaZeile, Rows(LoI))
                End If
            End If
        End If
    Next LoI
    If Not RaZeile Is Nothing Then RaZeile.Delete
    Application.ScreenUpdating = True
    Set RaZeile = Nothing
End Sub
GrußformelHomepage


  

Betrifft: AW: Leere Zeilen löschen von: Gallanz
Geschrieben am: 02.11.2012 22:04:51

Excel hängt sich wieder auf...

Trotzdem Danke!


  

Betrifft: Rückfrage: .... von: Matze,Matthias
Geschrieben am: 02.11.2012 22:54:16

Hallo Gallanz,
hast du eventuell in dem Blatt noch ein weiteres Makro laufen ?
Eventuell ein "Change-Ereignis?" was sich mit dem zu löschenden Bereich in die Quere kommt?

Matze


  

Betrifft: da könnte man aber in den Entwurfsmodus gehen von: Matthias L
Geschrieben am: 02.11.2012 23:02:47

Hallo Matze

... und dann die Zeilen manuell löschen

Gruß Matthias


  

Betrifft: Jepp ! owT von: Matze,Matthias
Geschrieben am: 02.11.2012 23:04:36




  

Betrifft: AW: Leere Zeilen löschen von: Matze,Matthias
Geschrieben am: 02.11.2012 23:03:52

Nochmal Hallo Gallanz,

wolltest du nicht ALLEs ab Zeile 530 löschen

dann so:
Nicht wiederherstellbat!! vorher Sichern!!

Sub DeleteZeilen()
Application.ScreenUpdating = False
Range(Rows(530), Rows(Rows.Count)).Delete
Application.ScreenUpdating = True
End Sub



  

Betrifft: AW: Leere Zeilen löschen von: Matze,Matthias
Geschrieben am: 02.11.2012 23:06:03

Öhm : mach bitte aus der 530 eine 531


  

Betrifft: Nicht wiederherstellbar ? von: Matthias L
Geschrieben am: 02.11.2012 23:09:18

Hallo Matze

Datei schließen ohne Speichern

Aber ich gebe Dir generell Recht :o)
Immer an einer Kopie testen

Gruß Matthias


  

Betrifft: RE: Nicht wiederherstellbar ? von: Matze,Matthias
Geschrieben am: 02.11.2012 23:15:37

Hallo Matthias,
habe ich denn wenigstens Recht, das "wenn" gespeichert wurde,
das die Zeile "Nicht" wiederherstellbar sind, oder gibt es da doch ncohe einen Weg?

Matze


  

Betrifft: Ja, ich gab Dir doch schon generell Recht ;-) kwT von: Matthias L
Geschrieben am: 02.11.2012 23:23:14




  

Betrifft: Rückfrage: .... von: Matze,Matthias
Geschrieben am: 02.11.2012 23:39:48

Hallo Gallanz,
Dein Betreff lautet "Leere Zeilen " löschen, aber in der Beschreibung schreibst du:

Ich möchte nun ab Zeile 530 alles löschen

Einfach für mich mal getestet,..
habe Hajos Codezeilen mal mit 20.000 Zeilen und 5 Spalten laufen lassen.
Hat genau 35 Sekundn gedauert, also gehe ich mal davon aus, das dein Bereich
da locker 10 Minuten u. mehr braucht. Hast du die Zeit gewartet, oder wie wirkt sich das "aufhängen" aus?

Könnte mann deinen "UsedRange" eingrenzen, das sagen wir wenn in Spalte A eine "Leere Zelle" ist
die Zeile gelöscht werden kann? Somit wäre weniger zu berechnen.

Rückantworten, helfen !!

Matze


  

Betrifft: oder versuchs mal so ... von: Matthias L
Geschrieben am: 02.11.2012 23:53:12

Hallo

Range(Rows("530:530"), Rows("530:530").End(xlDown)).Delete Shift:=xlUp
Gruß Matthias


  

Betrifft: AW: oder versuchs mal so ... von: Gallanz
Geschrieben am: 03.11.2012 00:27:20

Ich teste mal die Vorschläge und berichte dann.

Ich habe beim ersten Versuch nicht abgewartet, da der Taskmanager anzeigte, dass Excel nicht mehr reagiert und die Auslastung meines Arbeitsspeichers bei 95% lag.

Gallanz


  

Betrifft: AW: oder versuchs mal so ... von: Gallanz
Geschrieben am: 03.11.2012 00:35:35

Der Code von Hajo_Zi funktioniert mit etwas Geduld ;)

Danke nochmal!


 

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