Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Auslesen von Auto Filter und aktivieren von Checkboxen auf UserForm
#1
Hallo zusammen,

ich habe ein Tabellenblatt entworfen auf dem in Zeile 4 ein Auto Filter dauerhaft aktiviert ist.

Spalte A enthält bestimmte Produkte, die unterschiedliche Eigenschaften haben. Diese Eigenschaften werden ab der Spalte L (AutoFilter Feld 12), derzeit bis Spalte AC, einzeln gefiltert. In den Zellen steht jeweils eine 1 wenn das Produkt die Eigenschaft der Überschrift in Zeile 4 hat. Daher wird im Auto Filter immer nur der Wert 1 herausgefiltert. 

Um mir die Bedienung einfacher zu gestalten habe ich mir ein UserForm erstellt, auf dem derzeit 18 Checkboxen vorhanden sind. Mit deren Hilfe kann ich mit dem nachfolgenden Code jeweils die Filter aktivieren.

Code:
Private Sub CheckBox1_Click()
' Ansteuerung Checkbox 1
    If CheckBox1.Value = True Then
        ActiveSheet.Range("$A$4:$ZZ$100000").AutoFilter Field:=12, Criteria1:="1", _
        Operator:=xlAnd
    End If
    If CheckBox1.Value = False Then
        ActiveSheet.Range("$A$4:$ZZ$100000").AutoFilter Field:=12
    End If
End Sub

Private Sub CheckBox2_Click()
' Ansteuerung Checkbox "Normalfunktion"
    If CheckBox2.Value = True Then
        ActiveSheet.Range("$A$4:$ZZ$100000").AutoFilter Field:=13, Criteria1:="1", _
        Operator:=xlAnd
    End If
    If CheckBox2.Value = False Then
        ActiveSheet.Range("$A$4:$ZZ$100000").AutoFilter Field:=13
    End If
End Sub

Geht jeweils einzeln für insgesamt 18 Checkboxen so weiter...


Nun möchte ich jedoch beim Aufruf des UserForm eine Prüfung der jeweiligen Autofilter durchführen und jeweils in der damit verbundenen Checkbox auf dem UserForm den Haken setzen.

Den Code hierzu stelle ich mir dann irgendwie so vor...


Code:
Sub Schaltfläche1_Klicken()

UserForm1.Show

Wenn Filter in Spalte L auf Wert 1 gesetzt, dann setze den Wert der Checkbox1 auf WAHR.
Wenn Filter in Spalte M auf Wert 1 gesetzt, dann setze den Wert der Checkbox2 auf WAHR.
Wenn Filter in Spalte N auf Wert 1 gesetzt, dann setze den Wert der Checkbox3 auf WAHR.
Wenn Filter in Spalte O auf Wert 1 gesetzt, dann setze den Wert der Checkbox4 auf WAHR.
...

End Sub

Kann mir bitte jemand bei der Ausformulierung des Codes weiterhelfen, bin leider VBA-Newbie  Blush

Vielen Dank auf jeden Fall schon mal vorab für die Hilfe und Unterstützung!!!
Antworten Top
#2
Hallo Klaibi,

folgender Code kommt in das Userform:
Private Sub UserForm_Activate()
 Dim i As Long
 With ActiveSheet.AutoFilter
   For i = 12 To .Filters.Count
     Me.Controls("CheckBox" & i - 11) = .Filters(i).On
   Next i
 End With
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Klaibi
Antworten Top
#3
Vielen Dank für den Lösungsansatz. Ich habe es natürlich gleich ausprobiert und leider funktioniert es bei mir nicht, leider erhalte ich einen Laufzeitfehler...

Debugger stoppt bei: 
    Me.Controls("CheckBox" & i - 11) = .Filters(i).On
   
Antworten Top
#4
Hallo,

welche Zahl enthält die Variable i in diesem Moment? Einfach mit der Maus darüber halten und einen Moment warten.
Im jetzigen Code werden soviele Checkboxen erwartet wie die Gesamtanzahl Spalten - 11.

Gruß Uwe
Antworten Top
#5
Hallo Uwe,

der Debugger spuckt i=30 aus, was der Gesamtanzahl an Spalten mit Autofilter-Elementen entspricht....

Viele Grüße,
Andreas
Antworten Top
#6
Hallo Andreas,

30-11 ist 19, also gibt es keine CheckBox19 im UserForm.

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Klaibi
Antworten Top
#7
Hallo Uwe,

aufgrund einer Gruppierung von Spalten wurde ein zusätzliches Autofilter-Feld eingefügt, für dieses hatte ich natürlich keine Checkbox eingerichtet. Ich habe nun eine zusätzliche Box angelegt und es läuft! 

Super Sache! Vielen Dank & viele Grüße  :23: :23:
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste