Hey Kollege, du musst nicht gleich nervös werden und mit Nachrichten um dich werfen, weil mal einer "gelöscht" geschrieben hat. Es hat einen ganz simplen Grund: Ich hatte geschrieben "Da ist keine Datei", da mir keine Datei angezeigt wurde. Nach Aktualisierung war die Datei aber da, daher habe ich meinen Text gelöscht.
Gib doch den Leuten Zeit, auf deine Beiträge zu antworten, mit PN wird dir keiner schneller antworten - eher im Gegenteil.
Zu deinem Problem...
Filter zurücksetzen:
Code:
Private Sub CommandButton3_Click()
Dim chkbox As Control
If Sheets("Tabelle1").FilterMode = True Then Sheets("Tabelle1").ShowAllData
For Each chkbox In UserForm1.Controls
If TypeName(chkbox) = "CheckBox" Then chkbox.Value = False
Next chkbox
Call Kombinationsfeld
End Sub
Kombinationsfeld befüllen bzw. einschränken:
Code:
Private Sub ComboBox1_Change()
ActiveSheet.ListObjects("Tabelle2").Range.AutoFilter Field:=12, Criteria1:=UserForm1.ComboBox1
End Sub
Private Sub UserForm_Initialize()
Kombinationsfeld
End Sub
Private Sub Kombinationsfeld()
'Befüllt das Kombinationsfeld mit allen ungefilterten Werten der Tabelle
Dim oDic As Object, meAr
Dim A As Long
Set oDic = CreateObject("Scripting.Dictionary")
With Sheets("Tabelle1")
meAr = .Range("L7", .Cells(.Rows.Count, "L").End(xlUp)).SpecialCells(xlCellTypeVisible)
End With
For A = 1 To UBound(meAr)
oDic(meAr(A, 1)) = 0
Next
ComboBox1.List = oDic.keys
End Sub
Deine Checkboxen schreibst du dann alle so
Code:
Private Sub CheckBox1_Change()
Call M_snb
Call Kombinationsfeld
End Sub
Ich würde aber bei den Checkboxen anders vorgehen. Wenn der Haken gesetzt wird, soll der Filter gesetzt werden, soweit passt es ja. Aber es wäre doch praktisch, wenn der Filter nur für die betreffende Checkbox gelöscht würde, wenn der Haken entfernt wird. Meinst du nicht auch?