Autofilter in VBA
Autofilter mit verschiedenen Checkboxen
Hallo zusammen, das ist mein erster Beitrag und schon habe ich eine schwierige frage
Mein Problem ist, ich habe eine Excel Datei als Checkliste für eine Produktion.
Ich gebe die Felder die eingefügt werden mit einer IF Abfrage ein. Das Ganze wird über eine Checkbox angewählt.
BSP:
If CheckBox2.Value = True Then
Selection.AutoFilter Field:=14, Criteria1:="=X", Operator:=xlOr, _
Criteria2:="=LEI"
Selection.AutoFilter Field:=15
Selection.AutoFilter Field:=16, Criteria1:="X"
Selection.AutoFilter Field:=17, Criteria1:="X"
Selection.AutoFilter Field:=18, Criteria1:="X"
Selection.AutoFilter Field:=19, Criteria1:="X"
Selection.AutoFilter Field:=20, Criteria1:="X"
Selection.AutoFilter Field:=21, Criteria1:="X"
Selection.AutoFilter Field:=22, Criteria1:="X"
Selection.AutoFilter Field:=23, Criteria1:="X"
Selection.AutoFilter Field:=24, Criteria1:="X"
Selection.AutoFilter Field:=25, Criteria1:="X"
Selection.AutoFilter Field:=26, Criteria1:="X"
End If
Jetzt aber habe ich das Problem wenn mehrer Checkboxen angewählt sind zeigt es mir nur die letzte IF Abfrage an die anderen werden alle überschrieben. Die Notlösung die ich dazue gebastelt habe ist wieder eine IF Abfrage
BSP:
If CheckBox2.Value = True And CheckBox3.Value = True Then
Selection.AutoFilter Field:=14, Criteria1:="=X", Operator:=xlOr, _
Criteria2:="=LEI"
Selection.AutoFilter Field:=15
Selection.AutoFilter Field:=16
Selection.AutoFilter Field:=17, Criteria1:="X"
Selection.AutoFilter Field:=18, Criteria1:="X"
Selection.AutoFilter Field:=19, Criteria1:="X"
Selection.AutoFilter Field:=20, Criteria1:="X"
Selection.AutoFilter Field:=21, Criteria1:="X"
Selection.AutoFilter Field:=22, Criteria1:="X"
Selection.AutoFilter Field:=23, Criteria1:="X"
Selection.AutoFilter Field:=24, Criteria1:="X"
Selection.AutoFilter Field:=25, Criteria1:="X"
Selection.AutoFilter Field:=26, Criteria1:="X"
End If
Leider habe ich jetzt 12 Checkboxen und dan müsste ich für jedes zenario eine IF abfrage erstellen. Aber ich denke es gibt sicher eine andere Lösung nur kenne ich die nicht. Bin leider nicht so der Programmierhengst.
Danke schon mal im Voraus.
Hallo zusammen, das ist mein erster Beitrag und schon habe ich eine schwierige frage
Mein Problem ist, ich habe eine Excel Datei als Checkliste für eine Produktion.
Ich gebe die Felder die eingefügt werden mit einer IF Abfrage ein. Das Ganze wird über eine Checkbox angewählt.
BSP:
If CheckBox2.Value = True Then
Selection.AutoFilter Field:=14, Criteria1:="=X", Operator:=xlOr, _
Criteria2:="=LEI"
Selection.AutoFilter Field:=15
Selection.AutoFilter Field:=16, Criteria1:="X"
Selection.AutoFilter Field:=17, Criteria1:="X"
Selection.AutoFilter Field:=18, Criteria1:="X"
Selection.AutoFilter Field:=19, Criteria1:="X"
Selection.AutoFilter Field:=20, Criteria1:="X"
Selection.AutoFilter Field:=21, Criteria1:="X"
Selection.AutoFilter Field:=22, Criteria1:="X"
Selection.AutoFilter Field:=23, Criteria1:="X"
Selection.AutoFilter Field:=24, Criteria1:="X"
Selection.AutoFilter Field:=25, Criteria1:="X"
Selection.AutoFilter Field:=26, Criteria1:="X"
End If
Jetzt aber habe ich das Problem wenn mehrer Checkboxen angewählt sind zeigt es mir nur die letzte IF Abfrage an die anderen werden alle überschrieben. Die Notlösung die ich dazue gebastelt habe ist wieder eine IF Abfrage
BSP:
If CheckBox2.Value = True And CheckBox3.Value = True Then
Selection.AutoFilter Field:=14, Criteria1:="=X", Operator:=xlOr, _
Criteria2:="=LEI"
Selection.AutoFilter Field:=15
Selection.AutoFilter Field:=16
Selection.AutoFilter Field:=17, Criteria1:="X"
Selection.AutoFilter Field:=18, Criteria1:="X"
Selection.AutoFilter Field:=19, Criteria1:="X"
Selection.AutoFilter Field:=20, Criteria1:="X"
Selection.AutoFilter Field:=21, Criteria1:="X"
Selection.AutoFilter Field:=22, Criteria1:="X"
Selection.AutoFilter Field:=23, Criteria1:="X"
Selection.AutoFilter Field:=24, Criteria1:="X"
Selection.AutoFilter Field:=25, Criteria1:="X"
Selection.AutoFilter Field:=26, Criteria1:="X"
End If
Leider habe ich jetzt 12 Checkboxen und dan müsste ich für jedes zenario eine IF abfrage erstellen. Aber ich denke es gibt sicher eine andere Lösung nur kenne ich die nicht. Bin leider nicht so der Programmierhengst.
Danke schon mal im Voraus.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 48293
Url: https://administrator.de/forum/autofilter-in-vba-48293.html
Ausgedruckt am: 19.04.2025 um 12:04 Uhr
1 Kommentar
hmm... du kannst checksummen bilden. chkbox 1 = 1, chbox 2 = 2 chbox 3 = 4 chbox 3 = 8 chbox 4 = 16 usw.
dann fragst du am anfang die checkboxen ab und bekommst dein checksumme aus der summe der definierten werden, z.b. bei chbox 1 + chbox 4 = 17. die zahl ist immer eindeutig. dann machst du ein select case auf deine checksumme. aber wenig tipparbeit ist das auch nicht
dann fragst du am anfang die checkboxen ab und bekommst dein checksumme aus der summe der definierten werden, z.b. bei chbox 1 + chbox 4 = 17. die zahl ist immer eindeutig. dann machst du ein select case auf deine checksumme. aber wenig tipparbeit ist das auch nicht