in einer intelligenten Tabelle filtere ich in zwei Spalten nach Werten um diese Zeilen dann zu löschen.
Bei der einen Spalte filter ich nach Buchstaben und lösche diese dann. Das funktioniert soweit gut.
Bei der anderen Spalte filter ich nach dem Zahlenwert "0". Bei meinem Quelltext hängt es auch davon ab, in welchen Zahlenformat der Wert formatiert ist.
Z.B. findet der Autofilter den Wert 0 nicht wenn in der Spalte mit zwei Nachkommastellen "0,00" formatiert ist. Weiterhin dauert dieser Löschvorgang ziemlich lange (10.000 Zeilen).
Anbei der Quelltext, den ich bis dato verwende. Habt ihr einen Verbesserungsvorschlag um vielleicht den Zahlenwert unabhängig von der Formatierung zu filtern und den Vorgang zu beschleunigen?
Besten Dank vorab und Gruss,
whats up
Sub Update()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim LastRow As Integer
Dim tbl As ListObject
Dim a As Integer
Set tbl = ActiveSheet.ListObjects(1)
If tbl.ListRows.Count > 0 Then
If Application.WorksheetFunction.CountIf(tbl.ListColumns(24).DataBodyRange, "A") + Application.WorksheetFunction.CountIf(tbl.ListColumns(24).DataBodyRange, "Z") > 0 Then
tbl.Range.AutoFilter Field:=24, Criteria1:=Array("A", "Z"), Operator:=xlFilterValues
tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
tbl.Range.AutoFilter Field:=24
End If
If Application.WorksheetFunction.CountIf(tbl.ListColumns(12).DataBodyRange, "0.00") > 0 Then
tbl.Range.AutoFilter Field:=12, Criteria1:=Array("0.00"), Operator:=xlFilterValues
tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
tbl.Range.AutoFilter Field:=12
End If
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Anbei der Link zur Datei:
https://www.herber.de/bbs/user/148402.xlsm