Clever-Excel-Forum

Normale Version: Listbox in Userform mit Filterfunktion
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo alle zusammen,

ich möchte nichts falsch machen und stelle meine Fragen nur hier!!!

Wie der Titel meiner Anfrage schon sagt, möchte ich Daten in einer Userform nach bestimmten Kriterien filtern können.
[attachment=14942]

in meiner beigefügten Datei, ist dafür schon eine Userform vorhanden. Diese hat mir Crazy Tom als Bespiel gegeben, wie man filtern könnte
Den Code darin, verstehe ich natürlich so gut wie gar nicht.
Das einzige, was ich durch ausprobieren dort hinbekommen habe ist, die Comboboxen mit einer anderen Spalte aus der Tabelle verknüpfen zu können. Den Rest, meine Daten in den Userform dort richtig anzeigen zu lassen, da bin ich echt überfragt in dem Code, wie das ganze dort angesprochen wird?
Aber von der Aufmachung der Userform ist sie so, wie ich sie gerne für mich benutzen möchte.
 
Die mit den Fragezeichen, da weiß ich nicht welche Funktion die haben sollen?
Die erste Combobox sollte irgendwie die Möglichkeit haben, das wider alles angezeigt werden kann?
Die beiden anderen Comboboxen sind schon richtig.
Filtern möchte ich halt nur, entweder alles anzeigen, oder nach Genre und nach Medium-Typ.
Suchfunktion.....wäre bei Filmtitel, das er z.B. die Filme auch anzeigt, die zu einer Filmreihe gehören.
Start Tek, Thor usw.

Diese Auswahl würd ich gerne dann jeweils ausdrucken können??

Viele kennen meine Beiträge hier sicher schon und haben gesehen, das ich echt wenig Ahnung habe,
doch ich möchte Vba lernen und habe mir alles dafür geholt um das Grundwissen von VBA zu erlernen und zu verstehen.

RowSource und AddItem, Checkboxen, Comboboxen, Listbox ist für mich jetzt keine Fremdsprache mehr. Ich weiss jetzt, wie man Tabellen in Zeilen und Spalten befüllt.
Wann man was einsetzt......hab ne super gute Seite gefunden mit Videoanleitungen und kann das sofort nachbauen, was dort gezeigt wird.

Nur gibt es noch ne Menge, da muss ich schon Experte sein in VBA und ich weiß, hier gibt es eine Menge davon.



Gruß
Michael
Hmm...weiß keiner dazu was ???
Hallo

ganz ehrlich gesagt ist mir da der Aufwand zu groß
ich würde in einem Tabellenblatt die Anordnung der Spalten ändern
nur die Angaben die in der Listbox erscheinen sollen in die ersten Spalten
alles andere in die letzten
dann kann man die Listbox mit der Funktion bequem filtern
danach dann die Listboxeinträge in ein anderes Tabellenblatt eintragen welches dann ausgedruckt würde
da ich aber deine andere Datei kenne, in die du das später einbauen willst
und dort hantierst du mit mehreren Userforms
weiß ich auch dass dort dann alles geändert werden müsste

und dazu habe ich weder die Zeit noch Lust

MfG Tom
Hey Tom,

wenn du dir diese Datei anschaust, habe ich ein anderes Tabellenblatt extra zum späteren Filtern angelegt.

Mit dem Namen "Filterliste" diese hat nur 8 Spalten, den Rest habe ich weg gelassen.

Mit einer Formel hole ich mir aus der eigentlichen Liste die Einträge.

Mache ich über die Userform einen neuen Filmeintrag, holt sich das Tabellenblatt automatisch durch die Formel auch diesen Film

Im Grunde braucht nur dieses Tabellenblatt "Filterliste" mit der Filterfunktion bearbeitet werden.
Ich bräuchte nur das Blatt dann später in die andere Mappe kopieren ....und die Userform zum Filtern

Eigentlich hab ich es so gemacht, wie du eben beschrieben hast?!

Gruß
Michael
Hier funktioniert die Filterfunktion schon ein wenig.
Nur werden in der Listbox 1 nicht alle Spalten angezeigt.
Ich weiß nicht, wo ich das im Code ändern muss?

Die Anzeige sollte in der Listbox1 wie folgt angezeigt werden:

FilmNr - Filmtitel - Filmlänge - Genre - Jahr - FSK - Mediumtyp - Kaufpreis - 4K?


2 Spalte "Filmtitel" wird nicht mit angezeigt?


[attachment=14971]
Eigenschaften --> ColumnWidths
Hallo Tom,

danke für den Hinweis :)

hab alles angepasst!

Also soweit reicht das für mich zum Filtern.
Die TextBoxen oben...weiß ich nicht, ob ich die brauche?

Jetzt fehlt eigentlich nur, das ich mir alles anzeigen lassen kann,
Auswahl nach Filtern ausdrucken kann
und die Suche aus der Listbox2 in die Listbox1 übertragen kann?

[attachment=14972]

Gruß
Michael
Ich habe mal versucht das Suchergebnis in der ListBox2, in die Listbox1 zu übertragen, so wie der Code für die Comboboxen die Listbox mit
einem gefunden Ergebnis befüllt.

Leider geht das doch nicht so, wie ich es mir vorstellte 

mit diesem Code:

Code:
Private Sub ListBox2_Click()
   On Error Resume Next
   If Len(ListBox2.List) > 1 Then
       ListBox1.List = Array_Prüfen(ListBox2.List, 2)
       Label1.Caption = ListBox1.ListCount & " Datensätze gefunden"
   End If
End Sub
Ich bekomme hier keine Fehlermeldung, doch er trägt nichts in die ListBox 1
Die Comboboxen haben diesen Code und da geht das:
Code:
Private Sub combobox3_Change()
   On Error Resume Next
   If Len(ComboBox3.Text) > 1 Then
       ListBox1.List = Array_Prüfen(ComboBox3, 7)
       Label1.Caption = ListBox1.ListCount & " Datensätze gefunden"
   End If
End Sub
Man muss für die Listbox2 zum übertragen in die Listbox1 es sicherlich anders angehen, oder?


Gruß
Michael
Hallo Michael,

mir fiel da was auf (einmal List, beim zweiten (erfolgreichen) nicht).
(13.12.2017, 12:48)MdeJong schrieb: [ -> ]mit diesem Code:

Code:
       ListBox1.List = Array_Prüfen(ListBox2.List, 2)
Ich bekomme hier keine Fehlermeldung, doch er trägt nichts in die ListBox 1
Die Comboboxen haben diesen Code und da geht das:
Code:
       ListBox1.List = Array_Prüfen(ComboBox3, 7)

ob es das Problem löst, weiß ich nicht
Hallo Steffl,

in der Listbox2 suche ich nach einem Film.
Um diesen in die Listbox1 zu übertragen, habe ich versucht den Code von den Comboboxen zu verwenden,
eben halt die ListBox2 nach dem Array_Prüfen verwendet.

die 2 nach dem Komma, heißt doch, das er die Spalte B aus der Tabelle nehmen soll?

Ich dachte, das würde so gehen, wie bei den Comboboxen...das Change-Ereignis. wenn sich dort ein Wert verändert.

Ich weiß jetzt nicht, was du mir mit deinen Zeilen sagen wolltest.

Gruß
Michael
Seiten: 1 2 3