Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
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
VBA Autofilter mehrere Spalten
25.06.2019 09:06:35
Matthias
Guten Morgen,
ich weiß, dass der Autofilter schon verschiedentlich behandelt wurde hier, habe aber trotzdem eine entsprechende Frage.
Ich habe ein Tabellenblatt mit folgenden Spalten:
Kreis/Bundesland/Dienstleister/Anbieter/etc
In den Zeilen befinden sich natürlich mehrere bzw. alle Kreise eines Bundeslandes und die entsprechenden Dienstleister/Anbieter
In einer Userform habe ich pro Bundesland eine Checkbox, die den Autofilter im Tabellenblatt betätigt. Die nicht versteckten Zeilen werden dann in einer Listbox angezeigt. Das Filtern mit den Checkboxen funktioniert auch alles wunderbar mit diesem Code:
Private Sub Auswahl_BL() ' Autofilter nach Bundesland
Dim sngIndex As Single
Dim ialngCount As Long
Dim astrFilterArray() As String
For sngIndex = 1 To 16
If Wettbewerbstafel("CheckBox" & CStr(sngIndex)).Value = True Then
ReDim Preserve astrFilterArray(ialngCount)
astrFilterArray(ialngCount) = Choose(sngIndex, "Baden-Württemberg", "Bayern", _
"Berlin", "Brandenburg", "Bremen", "Hamburg", _
"Hessen", "Mecklenburg-Vorpommern", "Niedersachsen", "Nordrhein-Westfalen", _
"Rheinland-Pfalz", "Saarland", "Sachsen", "Sachsen-Anhalt", "Schleswig-Holstein", " _
Thüringen")
ialngCount = ialngCount + 1
End If
Next
With Sheets("Tabelle1").Range("A:L")
If ialngCount > 0 Then
Call .AutoFilter(Field:=2, Criteria1:=astrFilterArray, Operator:=xlFilterValues)
Else
Call .AutoFilter(Field:=2)
End If
End With
End Sub

Wenn ich aber jetzt mit weiteren Checkboxen zusätzlich nach Anbieter filtern möchte klappt das nicht (unzulässige Verwendung von Null). Dazu habe ich ein weiteres Sub hinzugefügt, welches gleich dem obigen ist (Werte angepasst).
Private Sub Auswahl_AB() ' Autofilter nach Anbieter
Dim sngIndex As Single
Dim ialngCount As Long
Dim astrFilterArray() As String
For sngIndex = 17 To 25
If Wettbewerbstafel("CheckBox" & CStr(sngIndex)).Value = True Then
ReDim Preserve astrFilterArray(ialngCount)
astrFilterArray(ialngCount) = Choose(sngIndex, "XX", "XX", "XX", "XX", "XX", "XX", " _
XX", "XX", "Siehe Kommentarfeld", "Unbekannt")
ialngCount = ialngCount + 1
End If
Next
With Sheets("Tabelle1").Range("A:L")
If ialngCount > 0 Then
Call .AutoFilter(Field:=4, Criteria1:=astrFilterArray, Operator:=xlFilterValues)
Else
Call .AutoFilter(Field:=4)
End If
End With
End Sub

Wenn ich nur nach Anbieter mit dem ersten Code filtere geht das auch. Warum denn wohl nicht beides? Wisst Ihr hier Rat?
Vielen Dank.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Autofilter mehrere Spalten
25.06.2019 13:09:31
fcs
Hallo Matthias,
passe folgende Zeile An:
Choose(sngIndex - 16, "XX", "XX", "XX", "XX", "XX", "XX", " _
XX", "XX", "Siehe Kommentarfeld", "Unbekannt")
Bei Befehl "Choose" beginnt der Index für die Werte immer bei 1
LG
Franz
AW: VBA Autofilter mehrere Spalten
25.06.2019 13:48:57
Matthias
Moin Franz,
das war die Lösung. Ich bin begeistert, wäre ich im Leben nicht drauf gekommen.
Recht herzlichen Dank dafür.
Gruß Matthias
Anzeige

124 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige