Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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
Inhaltsverzeichnis

Wert aus Combobox für Autofilter

Wert aus Combobox für Autofilter
Karl
Hallo Excelfreunde,
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

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

Betreff
Benutzer
Anzeige
Liegen die Werte der CB wirklich auf einem anderen
08.07.2010 13:16:39
NoNet
...Tabellenblatt ?
Hallo Karl,
ich kann den Fehler nachvollziehen, sobald die Werte der ComboBox im gleichen Tabellenblatt (genauer: in der zu filternden Liste) liegen. Sobald diese Werte jedoch in einem anderen Tabellenblatt liegen (mit oder ohne Bezug auf das zu filternde Blatt !) klappt alles einwandfrei.
Problematisch wird es also, wenn die Liste gefiltert wird und sich auf diesen (nun gefilterten) Bereich eine andere ComboBox bezieht - das führt zu Fehler !
Schau dir das unten angehängte Beispiel an :
In Tabelle1 bis Tabelle4 befinden sich jeweils 1 Combobox (Combobox1 bis Combobox4) mit unterschiedliche Datenbezügen. Problematisch ist nur "Tabelle1".
Im Blatt "Tabelle alle" habe ich alle Varianten zusammengeführt. Dort funktionierne nun plötzlich die Varianten "Combobox1 bis Combobox4" nicht mehr, ob wohl die exakt gleichen Varianten in "Tabelle2" bis "Tabelle3" noch funktioniert haben. Der Grund ist, dass in "Tabelle alle" auch die "Combobox1" aus "Tabelle1" enthalten ist, die nun wiederum ihre Daten aus dem (nun gefilterten) Datenbereich bezieht.
Löscht man die "Combobox1" aus dem Blatt "Tabelle alle", funktionieren die anderen 3 Varianten nun wieder !
https://www.herber.de/bbs/user/70493.xls
Gruß, NoNet
gegen 0:1  
Anzeige
AW: Liegen die Werte der CB wirklich auf einem anderen
09.07.2010 17:10:54
Karl
Hallo NoNet,
wieso kann ich nicht auf meinen Beitrag antworten, wenn ich auf den Button "Deine Beiträge" --> "anfordern" klicke. Ich habe mir den Beitrag jetzt mühsam aus der Forum-Liste gesucht. Hier kann ich nun antworten. Aber das muss doch auch einfacher gehen...
Zu dem Problem:
Vielen Dank für die Beispielarbeitsmappe. Wie Du schon fest gestellt hast, funktioniert das nicht so richtig wenn man Werte für die Combobox in der selben Zeile und selben Tabellenblatt wie die zu filternden Werte hat.
Ich habe das Problem aber trotzdem lösen können (mit etwas Hilfe von jemand anderem), s.u.
Ist nicht elegant, aber es funktioniert.
Auf jeden Fall vielen Dank für Deine Antwort und Hilfe.
Gruß Karl
Private Sub ComboBox2_Change()
Dim x As String
Dim y As String
y = Sheets("Selection").ComboBox2.Value
x = Sheets("Variables").Range("L4").Value
If y = x Then
Else
Sheets("Variables").Range("L4") = y
Call prcFiltern(y)
End If
End Sub
Sub prcFiltern(strKrit As String)
Dim wksFilterblatt As Worksheet
Set wksFilterblatt = Worksheets("Variables")
With wksFilterblatt
If .FilterMode = False Then
.Range(.Cells(5, 13), .Cells(.Cells(.Rows.Count, 13).End(xlUp).Row, 13)).AutoFilter
Else
.ShowAllData
End If
If IsNumeric(strKrit) Then .Range(.Cells(5, 13), .Cells(.Cells(.Rows.Count, 13).End(xlUp).Row, 13)).AutoFilter field:=1, Criteria1:=CLng(strKrit)
'.Activate
End With
End Sub
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige