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