Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1252to1256
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten löschen mit Autofilter, wenn keine Daten da

Daten löschen mit Autofilter, wenn keine Daten da
erkacol@gmx.de
allo zusammen,
ich möchte per VBA in einer Excel-Tabelle bestimmte Datensätze mit dem Autofilter auswählen und diese dann löschen. Das klappt soweit auch.
'Stornogrund 50 (Spalte L) und keine Matkennung (Spalte S = leer)
Selection.AutoFilter Field:=12, Criteria1:="50"
Selection.AutoFilter Field:=19, Criteria1:="="
loLetzte = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Rows("2:" & loLetzte).Select
Selection.Delete Shift:=xlUp
ActiveSheet.ShowAllData
'Matkennung (Spalte S = 001)
Selection.AutoFilter Field:=19, Criteria1:="001"
loLetzte = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Rows("2:" & loLetzte).Select
Selection.Delete Shift:=xlUp
ActiveSheet.ShowAllData

Leider kann es auch sein, dass keine Datensatze in der Tabelle enthalten sind, die den Filterkriterinen entsprechen (es also nix zu löschen gibt). In diesen Fällen werden aber die Spaltenüberschriften gelöscht.
Ich bräuchte also eine Funktion, die die Daten filtert und löscht, wenn Datensätze enthalten sind bzw. den nächsten Autofilter ausführt, wenn keine Datensäze ausgewählt werden.
Danke schonmal für eure Hilfe!
"erkacol"

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Daten löschen mit Autofilter, wenn keine Daten da
15.03.2012 14:19:27
Frank
Hallo erkacol,
das Problem ist, das der Wert von loLetzte 1 ist, wenn keine Daten gefunden werden. Das bedeutet, vba löscht die Zeilen 2 - 1.
So sollte es gehen:
Sub test()
Dim loLetzte As Integer
'Stornogrund 50 (Spalte L) und keine Matkennung (Spalte S = leer)
Selection.AutoFilter Field:=1, Criteria1:="50"
Selection.AutoFilter Field:=2, Criteria1:=""
loLetzte = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
If loLetzte = 1 Then GoTo Weiter
Rows("2:" & loLetzte).Select
Selection.Delete Shift:=xlUp
ActiveSheet.ShowAllData
Weiter:
'Matkennung (Spalte S = 001)
Selection.AutoFilter Field:=2, Criteria1:="001"
loLetzte = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
If loLetzte = 1 Then GoTo Weiter1
Rows("2:" & loLetzte).Select
Selection.Delete Shift:=xlUp
ActiveSheet.ShowAllData
Weiter1:
End Sub
Gruß
Frank
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige