Microsoft Excel

Herbers Excel/VBA-Archiv

EntireRow.Delete Excel hängt sich auf


Betrifft: EntireRow.Delete Excel hängt sich auf von: andthen
Geschrieben am: 22.08.2016 11:48:23

Hallo zusammen,
ich habe folgendes Problem:

Ich versuche aus einer Datengrundlage alle Zeilen mit einem Nullwert zu löschen.

Sub aufraeumen()
Dim letzteZeile As Integer
'Application.ScreenUpdating = False
'Application.Calculation = xlCalculationManual

letzteZeile = ActiveSheet.Cells(1048576, 1).End(xlUp).Row

For i = 1 To letzteZeile
If ThisWorkbook.Worksheets(1).Range("A" & i).Value = ThisWorkbook.Worksheets(1).Range("A" & i +  _
1).Value And ThisWorkbook.Worksheets(1).Range("E" & i + 1).Value = 0 Then
ThisWorkbook.Worksheets(1).Rows(i + 1).EntireRow.Delete
i = i - 1
End If
Next i

'Application.Calculation = xlCalculationAutomatic
'Application.ScreenUpdating = True
End Sub
Leider hängt sich bei der Ausführung Excel immer wieder auf.
Habt ihr eine Idee woher das kommt?

VG
andthen

  

Betrifft: AW: EntireRow.Delete Excel hängt sich auf von: IngoG
Geschrieben am: 22.08.2016 12:25:41

Hallo,

prinzipiell solltest Du Beim Löschen immer von unten nach oben arbeiten...
also etwa folgendermaßen:

Sub aufraeumen()
Dim letzteZeile As Integer
'Application.ScreenUpdating = False
'Application.Calculation = xlCalculationManual

letzteZeile = ActiveSheet.Cells(1048576, 1).End(xlUp).Row

For i = letzteZeile to 2 step -1
If ThisWorkbook.Worksheets(1).Range("A" & i).Value = ThisWorkbook.Worksheets(1).Range("A" & i -  _
 _
1).Value And ThisWorkbook.Worksheets(1).Range("E" & i).Value = 0 Then
ThisWorkbook.Worksheets(1).Rows(i ).EntireRow.Delete

End If
Next i

'Application.Calculation = xlCalculationAutomatic
'Application.ScreenUpdating = True
End Sub


ich hoffe, das hilft Dir weiter
Gruß Ingo


  

Betrifft: AW: EntireRow.Delete Excel hängt sich auf von: andthen
Geschrieben am: 22.08.2016 12:59:34

Hallo Ingo,

vielen Dank für deine Antwort, es funktioniert einwandfrei.

VG
Robert


  

Betrifft: AW: EntireRow.Delete Excel hängt sich auf von: Werner
Geschrieben am: 22.08.2016 13:01:01

Hallo,

zusätzlich zum Beitrag von Ingo:

Die Variable letzteZeile als LONG und nicht als INTEGER deklarieren.

Gruß Werner