Zeilen abhängig von einer bestimmten Bedingung löschen

Bedingte Zeilenlöschung

Mit diesem Makro können sie Zeilen abhängig von einer Bedingung löschen. Die Bedingung in diesem Beispiel ist der Buchstabe "x" in der ersten Spalte. Das bedeutet, wenn eine Zeile in Spalte A ein "x" enthält wird diese Zeile entfernt.


Zuerst wird die letzte verwendete Zeile ermittelt. Anschließend wird über eine For-Next-Schleife jede Zeile gelöscht, die das entsprechende Kriterium enthält.

Public Sub bedingte_Zeilenloeschung()
'** Ermittlung der letzten Zeile in Spalte A
lz = Cells(Rows.Count, 1).End(xlUp).Rows.Row

'** Durchlauf aller Zeilen
For t = lz To 2 Step -1 'Zählung rückwärts bis Zeile 2
'Abfragen, ob in der ersten Spalte der Buchstabe "x" steht
    If Cells(t, 1).Value = "x" Then
        Rows(t).Delete Shift:=xlUp
    End If
Next t
End Sub


Bedingte Spaltenlöschung

Auf die gleiche Weise funktioniert die Löschung von Spalten anhand eines Kriteriums. In nachfolgenden Beispiel werden alle Spalten gelöscht, bei denen sich in Zeile 1 der Wert 0 (Null) befindet, siehe folgenden VBA-Code.


Public Sub bedingte_Spaltenloeschung()
'** Ermittlung der letzten Spalte in Zeile 1
ls = Cells(1, Columns.Count).End(xlToLeft).Columns.Column

'** Durchlauf aller Zeilen
For s = ls To 1 Step -1 'Zählung rückwärts bis Spalte 1
'** Abfragen, ob in der ersten Spalte die Ziffer 0 steht
    If Cells(1, s).Value = 0 Then
        Columns(s).Delete Shift:=xlToLeft
    End If
Next s
End Sub