Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Listbox in abhängigkeit befüllen
#1
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
Antworten Top
#2
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Dacheff
Antworten Top
#3
(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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
Bitte das Thema löschen, Crossposting ist nicht erlaubt das wusste ich nicht. Entschuldigung
Antworten Top
#5
@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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Dacheff
Antworten Top
#6
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.


Angehängte Dateien
.xlsm   Kosten_Demo.xlsm (Größe: 34,2 KB / Downloads: 1)
Antworten Top
#7
Bitte diesen Post Ignorieren
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste