Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

FILTER; COMBOBOX

Betrifft: FILTER; COMBOBOX von: CARL
Geschrieben am: 31.07.2008 14:12:34

Hallo, ich bin auf der Suche nach Hilfe bei der Verknüpfung einer Combobox mit dem Autofilter.

Ich habe auf einem Blatt eine relativ große Datenbank und möchte diese durch Filter bedienen.

Auf anderen Blatt habe ich ein paar Comboboxn erstellt und mit der Datenbank verknüpft.

ich möchte jetzt gerne dass, das was ich in der Combobox auswähle auf dem anderen Blatt gefiltert wird.

dies ist mein bisheriger Ansatz:

Private Sub CommandButton_use_filter_Click()
    On Error Resume Next
    Sheets("daten").Select
    Selection.AutoFilter Field:=7, Criteria1:="ComboBox_motor_typ.range"
    Selection.AutoFilter Field:=8, Criteria1:="ComboBox_motor_model.range"
End Sub



So werden die Filter zwar gesetzt, aber der Filter läßt alles verschwinden ?!?

kann mir jemand sagen was ich hier verkehrt mache?

Vielen Dank schon mal,

grüße
Carl

  

Betrifft: AW: FILTER; COMBOBOX von: Nepumuk
Geschrieben am: 31.07.2008 14:19:58

Hallo Carl,

so?

Private Sub CommandButton_use_filter_Click()
    On Error Resume Next
    Sheets("daten").Select
    Selection.AutoFilter Field:=7, Criteria1:="=" & ComboBox_motor_typ.range
    Selection.AutoFilter Field:=8, Criteria1:="=" & ComboBox_motor_model.range
End Sub



Gruß
Nepumuk


  

Betrifft: AW: FILTER; COMBOBOX von: CARL
Geschrieben am: 31.07.2008 14:45:54

Hy vielen Dank für die schnelle Antwort!

ich hab mein script angepasst, aber so springt excel nur in die "daten" sheet

vorher hat er alles "weg" gefiltert nun bleiben die Filter völlig unangetastet...


Du hast aber völlig recht... es liegt an der Art wie ich die Comboboxen angegeben hatte!
Ich hab nun das ".range" dahinter weggenommen und siehe da...
ES GEHT!

Kannst du mir zufällig nun noch sagen wie ich es dass die Filter in der Daten sheet gewählt werden, ohne dass ich in die Daten sheet springe?


Vielen Dank für deine Mühen!

Gruß
Carl


  

Betrifft: AW: FILTER; COMBOBOX von: Nepumuk
Geschrieben am: 31.07.2008 15:09:49

Hallo Carl,

ich wusste nicht was es mit "range" auf sich hat. Hätte auch die Eigenschaft einer Klasse sein können.

Filtern ohne Select-Methode geht so:

Private Sub CommandButton_use_filter_Click()
    Sheets("daten").AutoFilter.Range.AutoFilter Field:=7, Criteria1:="=" & ComboBox_motor_typ
    Sheets("daten").AutoFilter.Range.AutoFilter Field:=8, Criteria1:="=" & ComboBox_motor_model
End Sub



Gruß
Nepumuk


  

Betrifft: AW: FILTER; COMBOBOX von: CARL
Geschrieben am: 31.07.2008 15:31:09

Sauber!
Ich danke dir recht herzlich!

Eine kleinigkeit hab ich aber dennoch :)

Ich habe ein Makro erstellt mit dem ich alle gesetzten Filter wieder aufheben kann, aber ich weiß nicht wie ich die Comboboxen wieder leeren soll.


Hast du dafür zufällig auch noch eine Lösung?


Supervielen Dank aber schon mal!!!

Grüße
Carl!


  

Betrifft: AW: FILTER; COMBOBOX von: Nepumuk
Geschrieben am: 31.07.2008 16:04:41

Hallo Carl,

einfach den Listindex auf -1 setzen.

Gruß
Nepumuk


  

Betrifft: AW: FILTER; COMBOBOX von: CARL
Geschrieben am: 31.07.2008 16:18:23

Hmm sry, aber damit kann ich nichts anfangen...

in den Eigenschaften der Combobox gibt es keinen "listindex"
liegt das ev an der Version?


  

Betrifft: AW: FILTER; COMBOBOX von: Nepumuk
Geschrieben am: 31.07.2008 16:23:43

Hallo Carl,

aus welcher Symbolleiste kommen denn die Boxen? Wie werden sie gefüllt?

Gruß
Nepumuk


  

Betrifft: AW: FILTER; COMBOBOX von: CARL
Geschrieben am: 31.07.2008 16:27:43

Die Boxen hab ich in der Excel sheet erstellt und in "listfillrange" einen bereichsnamen eingegeben...


  

Betrifft: AW: FILTER; COMBOBOX von: Nepumuk
Geschrieben am: 31.07.2008 17:21:18

Ach Carl,

dass die in einer Excelmappe sind, habe ich eigentlich vorausgesetzt.

Ich wollte aber wissen, aus welcher Symbolleiste du sie erstellt hast. Da gibt es nämlich die Symbolleiste Formular und Steuerelement-Toolbox. Und aus beiden lassen sich Comboboxen erzeugen. Aber das sind zwei ganz unterschiedliche Objekte.

Aber da du ListFillrange schreibst, sind die natürlich aus der Symbolleiste Steuerelement-Toolbox.

Damit steht auch fest, dass sie sich mit "ListIndex = -1" zurücksetzen lassen.

Beispiel:

Public Sub test()
    Tabelle1.ComboBox1.ListIndex = -1
End Sub



Gruß
Nepumuk


  

Betrifft: AW: FILTER; COMBOBOX von: CARL
Geschrieben am: 01.08.2008 09:21:05

Guten Morgen!

:)

dass die in einer Excelmappe sind, habe ich eigentlich vorausgesetzt.


LOL! Ja OK! kleiner schnitzer :)

soll ich die Code zeile in das Makro für den Filter mit hinenschreiben?

ich bin ein wenig ratlos!
...carl


  

Betrifft: AW: FILTER; COMBOBOX von: CARL
Geschrieben am: 01.08.2008 09:51:10

Hi, ich hab dies mal so probiert

ichhabe deine Code Zeile an meinen Commanbutton zum filter löschen angehängt ...

Private Sub reset_filter_Click()

' Delete all Filter
On Error Resume Next
If Sheets("daten").FilterMode Then Sheets("daten").ShowAllData
Sheets("market TOTAL").ComboBox_engine_type_Change.ListIndex = -1
End Sub



aber da tut sich gar nix! :(

kannst Du erkennen wo der Fehler liegt?


thnx
Carl


  

Betrifft: AW: FILTER; COMBOBOX von: Nepumuk
Geschrieben am: 01.08.2008 10:51:07

Hallo Carl,

schmeiß mal die On Error - Anweisung raus. Dann sagt dir Excel schon was nicht passt.

Gruß
Nepumuk


  

Betrifft: AW: FILTER; COMBOBOX von: Nepumuk
Geschrieben am: 01.08.2008 09:53:05

Hallo Carl,

ich dachte, du hast eine Extraprozedur um den Filter zurückzusetzen. Von der Logik her würde ich sagen, da gehört auch das zurücksetzen der Comboboxen rein.

Gruß
Nepumuk


  

Betrifft: AW: FILTER; COMBOBOX von: CARL
Geschrieben am: 01.08.2008 11:56:46

so ok, ich hab die error geschichte raus genommen...

dann kommt die meldung

laufzeitfehler'438'
objekt unterstützt diese Eigenschaft oder Methode nicht



zu deiner zweiten Frage:
ichhab den Code in die "reset filter" Prozedur eingefügt
der gesamte code der bei dem Button hiterlegt ist sieht jetzt so aus :

Private Sub reset_filter_Click()

' Delete all Filter
If Sheets("daten").FilterMode Then Sheets("daten").ShowAllData
Sheets("market TOTAL").ComboBox_engine_type_Change.ListIndex = -1
End Sub



war das falsch?


  

Betrifft: AW: FILTER; COMBOBOX von: Nepumuk
Geschrieben am: 01.08.2008 13:32:13

Hallo Carl,

Sheets("market TOTAL") ist ein uneindeutiges Objekt, da die Objektzuweisung erst duch den Namensparameter erfolgt. Du musst also den Objektnamen der Tabelle benutzen.

Beispiel:

Tabelle1.ComboBox_engine_type_Change.ListIndex = -1

Den Objektnamen findest du im Projektexplorer vor dem Tabellennamen in Klammern. Das steht z.B.:

Tabelle1(market TOTAL)

Gruß
Nepumuk


  

Betrifft: AW: FILTER; COMBOBOX von: CARL
Geschrieben am: 01.08.2008 13:54:06

Hi Nepumuk,

so heißt das Daenblatt!

"market total"


  

Betrifft: AW: FILTER; COMBOBOX von: CARL
Geschrieben am: 01.08.2008 15:20:30

hmm... mir ist aufgefallen das in meiner Combobox ne menge doppelter einträge enthalten sind.

kann ich diese irgendwie ausblenden?

(sie dürfen allerdings nicht gelöscht werden!)

any idea?


  

Betrifft: AW: FILTER; COMBOBOX von: Nepumuk
Geschrieben am: 01.08.2008 18:03:16

Hallo Carl,

ausblenden in einer Combobox geht nicht.

Gruß
Nepumuk


  

Betrifft: AW: FILTER; COMBOBOX von: CARL
Geschrieben am: 05.08.2008 13:25:32

OK! ich bin das Problem umgangen und habe eine andere Liste mit der Box verknüpft ..klappt Super!

Vielen Dank noch mal
...carl


 

Beiträge aus den Excel-Beispielen zum Thema "FILTER; COMBOBOX"