Clever-Excel-Forum

Normale Version: VBA Listbox in abhängigkeit befüllen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

Ich habe eine kleine Excel datei mit einer Userform zur eingabe von Daten geschrieben. Allerdings funktionieren meine Listboxen nicht so wie sie sollen, ich stehe aber auch irgendwie total auf dem Schlauch warum das so ist.

Zu erklärung: Ich möchte das die GrundDaten im Tabellenblatt"Datenerfassung" immer gleich eingegeben werden um später besser selektieren und auswerten zu können. Dazu wollte ich zwei ListBoxen anlegen. In der ersten Listbox sollen die "Hauptkategorien" stehen. Diese soll er sich aus dem zweiten Tabellenblatt"Kostenstellen"heraus nehmen. Nun soll in der zweiten Listbox in abhängigkeit dessen was in der ersten ausgewählt wurde die Unterpunkte zur auswahl auftauchen.

Bsp: Listbox 1 Wird "Energie" ausgewählt, dann sollte in Listbox2 T0000 Strom
T0001 Wasser
erscheinen. Die angeklickte zuordnung soll dann in die Textboxen "Anlage" und "Kostenstele" hinein geschrieben werden. Die Listbox 2 soll sich aber auch immer weiter von alleine füllen um so mehr Kostenstellen auf dem Tabellenblatt"Kostenstellen" eingetragen werden. Damit später nicht immer der Code sondern nur das Tabellenblatt erweitert werden muss. Zu erklärung:Im Tabellenblatt"Kostenstellen" stehen die Hauptbegriffe in einer Zeile und jeweils darunter in der Spalte die dazugehörigen Einträge.

Einergie Verwaltung
T0000 Strom T0002 Papier
T0001 Wasser T0003 Tinte

Ich hoffe ich habe mich verständlich ausgedrückt und ihr könnt mir helfen.

Besten dank schon mal.

Gruß
Dacheff
Hallöchen,

ich habe mir Deine Datei jetzt nicht angeschaut. Hier mal allgemein:

Wenn Du Deine Listbox mit Referenz auf einen Zellbereich füllst, dürfen in dem Zellbereich nur die anzuzeigenden Daten stehen. Filtern geht da nicht. Du müsstest dafür die Daten in einen anderen Bereich übernehmen (Spezialfilter, Autofilter per Formel ...) und darauf referenzieren

Oder Du füllt die Listbox zeilenweise. Hier mal der Ansatz für eine zweispaltige Listbox zur Anzeige von A1 und B1:

ListBox1.AddItem Cells(1, 1).Value
ListBox1.List(0, 1) = Cells(1, 1).Value

Für mehr Zeilen dann natürlich in einer Schleife, mit entsprechendem eigenen Zähler für den Index der Einträge in die Listbox und entsprechend Deiner Fragestellung mit einem IF ... zur Prüfung für die eingeschränkte Übernahme der Daten in die Listbox.
(09.01.2021, 09:34)schauan schrieb: [ -> ]ich habe mir Deine Datei jetzt nicht angeschaut.

Ich auch nicht!
Sie wurde ja, warum auch immer, mittlerweile vom TE entfernt.  Confused Huh

Na, dann tob Dich mal im MS-Office-Forum aus.
Hast ja da einen netten Antworter gefunden.  21
Bitte das Thema löschen, Crossposting ist nicht erlaubt das wusste ich nicht. Entschuldigung
@Schauan
Code:
Sub M_snb()
  ListBox1.List = [transpose(A1:A14)]
  ListBox1.List = Filter(Application.Transpose(ListBox1.List), ListBox1.List(4), 0)
End Sub
oder
Code:
Sub M_snb()
   ListBox1.List = [A1:A14].Value
   ListBox1.List = Filter(Application.Transpose(ListBox1.List), ListBox1.List(4), 0)
End Sub
Danke für deine Antwort, anbei mal meine Beispieldatei um es eventuell besser zu verstehen. Ich werde versuchen deinen Code mal dem meinen bei zu fügen.
Bitte diesen Post Ignorieren