ich habe mir eine ComboBox (=Kombinationsfeld, Dropdownliste) erstellt, welches sich in einem Tabellenblatt befindet. Die Werte für die Dropdownliste befinden sich in einem anderen Tabellenblatt. Nun suche ich mir einen Wert über das Dropdownmenü aus und mit diesem Wert soll eine Autofilter Aktion in einer anderen Spalte durchgeführt werden.
Ich möchte mir praktisch alle Zeilen anzeigen lassen, die den vorher ausgewählten Wert enthalten. Ich benötige die Informationen, die in diesen Zeilen stehen.
Meine bisherige Umsetzung sieht wie folgt aus.
1. Auswahl des Wertes aus der Droptdownliste
2. mit
Private Sub ComboBox2_change()
Call finden
End Sub
3. Sub finden()
Dim d As Double
d = Sheets("Selection").ComboBox2.Value
Sheets("Variables").Select
n = Cells(Cells.Rows.Count, 13).End(xlUp).Row ' 13=Spalte M
Sheets("Variables").Range(Cells(5, 13), Cells(n, 13)).Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=d
End Sub Wenn ich das mit der Hand durchklicke funktioniert alles (call finden ist dabei dann natürlich auskommentiert).
Wenn ich das aber als Makro so laufen lasse, kommt folgende Meldung:
Laufzeitfehler '1004':
Die Autofilter-Methode des Ranges-Objektes konnte nicht ausgeführt werden.
Wenn ich den Debugger nun stoppe, hat er die Zeilen jedoch alle so gefiltert wie geplant. Ich kann aber nun den Autofilter nicht mehr weg nehmen. Egal was ich klicke. die Auswahl bleibt bestehen!
Meine Vermutung ist, dass sich in Verbindung mit P rivate Sub ComboBox2_ change() und der Autofilteraktion eine Schleife einstellen wodurch die Autofilteraktion immer wieder aufgerufen wird.
Ich habe nun den halben Tag damit verbracht das Problem zu lösen, aber ohne Erfolg. Ich hoffe _
Ihr könnt mir helfen.
Als Hinweis was ich unter anderem schon versucht habe:
ComboBox2_click und nicht ComboBox2_change()
Application.EnableEvents=False/True
sleep 1000
DisplayUpdating = True/False
und alle Bezüge zu den Tabellen und Zellen mit ActiveWorksheet etc...
Gruß Karl