bedingte Zeilenlöschung
27.09.2011 01:15:11
Erich
Hi,
verstehe ich die Aufgabe richtig, wenn ich meine, dass nicht nur die 5 Zeilen unter einer nichtleeeren Zelle,
sondern auch die Zeile mit der nichtleeren Zelle selbst erhalten bleiben soll?
Pro nichtleerer Zelle bleiben also 6 Zeilen stehen.
Das würde ich dann so lösen:
Option Explicit
Sub LeereZeileWeg2()
Dim arrQ, zz As Long, ss As Long, rngDel As Range
arrQ = Range("A1:A300")
For zz = 10 To 300
If arrQ(zz, 1) "" Then
ss = zz
ElseIf zz > ss + 5 Then
If rngDel Is Nothing Then
Set rngDel = Cells(zz, 1)
Else
Set rngDel = Union(rngDel, Cells(zz, 1))
End If
End If
Next zz
If Not rngDel Is Nothing Then rngDel.Select 'EntireRow.Delete
End Sub
(Das Select am Ende ist nur zum Testen, später durch EntireRow.Delete zu ersetzen.)
@Stephan:
Wenn in A16 und A18 nichtleer sind, bleibt bei deiner Lösung A18 unbeachtet, gelöscht wird ab Zeile 22.
Wegen A18 darf aber erst ab Zeile 24 gelöscht werden.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort