Filter per VBA

Ich lasse per VBA den Filter setzen wenn die Spalte nicht leer ist. Das klappt auch. Wie kriege ich es aber hin, dass der Filter nicht gesetzt wird, wenn die Spalte leer ist?
Code:
Function SpalteLeer(iSpalte As Integer) As Boolean
If Application.WorksheetFunction.CountA(Columns(iSpalte)) = 0 Then
SpalteLeer = True
Else
SpalteLeer = False
End If
End Function
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SpalteLeer(1) = False Then
ActiveSheet.ListObjects(„Tabelle2“).Range.AutoFilter Field:=4, Criteria1:= _
„<>“
End If
If SpalteLeer(1) = True Then
ActiveSheet.ListObjects(„Tabelle2“).Range.AutoFilter Field:=4, Criteria1:= _
„“

End If
End Sub

Vielleicht hilft Dir das: Wenn in Tabelle2 die Spalte 1 leer ist, wird der Filter in Tabelle2 ausgeschaltet. Ist es überhaupt das, was Du möchtest?

Sub m2bbb()
Tabname = ActiveSheet.Name
Sheets("Tabelle2").Select
    If Application.WorksheetFunction.CountA(Columns(1)) = 0 _
        And ActiveSheet.AutoFilterMode = True Then
        Selection.AutoFilter
    End If
Sheets(Tabname).Select
End Sub

Ich habe vergeblich versucht, das in Dein Sub Workbook_BeforeSave einzufügen. Vielleicht gelingt es Dir.

Danke für deine Bemühung
Ich habe es jetzt anderst gelöst:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim a As Byte
Dim letzteZeile As Byte

With Worksheets(„Tabelle1“)
letzteZeile = .Cells(.Rows.Count, 1).End(xlUp).Row
For a = 10 To letzteZeile
If a Mod 2 = 0 Then
If .Cells(a, 4).Value <> „“ Then
ActiveSheet.ListObjects(„Tabelle1“).Range.AutoFilter Field:=4, Criteria1:= _
„<>“
End If
End If
Next
End With

End Sub

Wie du,im Excel, Siehst, habe ich eine Tabelle mit Überschrift eingefigt.
Wie kann ich die Schleife nur duch den Tabellenbereich laufen lassen, egal wo die Tabelle beginni bzw enden?Ich wollt das Excel anhängen, geht aber nicht.

Gruss Walter