AW: Rows delete
24.06.2008 22:31:41
Daniel
Hallo
sorry ich hatte nen kleinen Fehler drin, so sollte es funktionieren:
Sub löschen()
Columns(1).Insert
With Range("A1:A" & Cells(Rows.Count, 2).End(xlUp).Row)
.FormulaLocal = "=wenn(B1="""";"""";Zeile())"
.Formula = .Value
.EntireRow.Sort Key1:=Range("A1"), header:=xlNo
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
.EntireColumn.Delete
End With
End Sub
deine anderen Anfordrungen kannst du einfach einbauen, wenn du diese Zeile entsprechend änderst
.FormulaLocal = "=wenn(B1="""";"""";Zeile())"
zum beispiel so:
.FormulaLocal = "=wenn(B1=7;"""";Zeile())"
.FormulaLocal = "=wenn(B1=""Gregor"";"""";Zeile())"
.FormulaLocal = "=wenn(Oder(B1=""Gregor"";B1=7);"""";Zeile())"
um alle Zeilen zu löschen, die entweder "Gregor" oder 7 als Wert haben.
grosser Vorteil dieser Methode ist, du kannst die Formel, die die zu Löschenden Daten kennzeichnet, erstmal unabhängig vom Makro entwickeln und Ausprobieren (könnte ja mal ne komplexere Bedingung sein).
Da die Daten ja erstmal nur gekennzeichnet und nicht gelöscht werden, kannst du immer erst das Ergebnis kontrollieren, bevor du tatsächlich Daten löscht und im Falle eines Fehlers die Daten erst aufwendig wiederherstellen musst.
Gruß, Daniel