ich bin VBA-Neuling und scheitere gerade daran, einen flexiblen Filter in VBA zu basteln. Insgesamt funktioniert alles ganz ordentlich. Einziges Problem ist, dass die leeren Zellen permanent mitgefiltert werden, obwohl ich versucht habe, diese mit "" auszuschließen.
Der flexible Filter liegt im Tabellenblatt "Filter-Auswahl". Dort habe ich im Bereich A5:A10 verschiedene Filter-Vorgaben gemacht, u.a. auch "" um leere Zellen auszuschließen.
Das Tabellenblatt "Unternehmen" ist der Zielbereich, in den ich das Filterergebnis kopieren möchte.
Das Tabellenblatt "Gesamt" ist der Datenbereich, der gefiltert werden soll.
Hier die relevanten Code-Sequenzen:
Sub AutoFilter_Unternehmen()
Dim rngFilterRange As Range
Dim lngCriteriaCount As Long
Dim arrCriteria() As String
Sheets("Unternehmen").Cells.Clear
Sheets("Gesamt").Select
lngCriteriaCount = 10
ReDim arrCriteria(0 To lngCriteriaCount - 1)
arrCriteria(0) = Sheets("Filter-Auswahl").Range("a5")
arrCriteria(1) = Sheets("Filter-Auswahl").Range("a6")
arrCriteria(2) = Sheets("Filter-Auswahl").Range("a7")
arrCriteria(3) = Sheets("Filter-Auswahl").Range("a8")
arrCriteria(4) = Sheets("Filter-Auswahl").Range("a9")
arrCriteria(5) = Sheets("Filter-Auswahl").Range("a10")
Set rngFilterRange = Sheets("Gesamt").Range("a10:i10000")
rngFilterRange.AutoFilter Field:=9, _
Criteria1:=arrCriteria(), _
Operator:=xlFilterValues
Set rngFilterRange = Nothing
Range("a10").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Unternehmen").Range("a5").PasteSpecial xlPasteValuesAndNumberFormats
With Sheets("Gesamt")
If .AutoFilterMode Then
If .FilterMode Then
.ShowAllData
End If
End If
End With
Sheets("Gesamt").Select
End Sub
Was müsste ich tun, damit die leeren Zellen aus dem Filter ausgeschlossen werden?
DANKE EUCH,
Stevo