Das Archiv des Excel-Forums

VBA - Listbox in Abhängigkeit füllen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
ListBox UserForm


Betrifft: VBA - Listbox in Abhängigkeit füllen
von: Lucas H

Geschrieben am: 18.09.2019 19:31:54
Guten Abend Zusammen,

nach einiger Zeit musste ich mich einfach registrieren, da ich mit nachlesen und probieren einfach nicht zum Ziel komme. Also vorab schon einmal Danke für den bisherigen Input durch euch!

Zum Thema:
Ich versuche eine Maske aus Listboxen zu bauen, welche voneinander abhängig sind. Leider kann ich die mir vorliegende Tabelle nicht filtern.
1. Schritt
Ich habe in der ersten Liste meine Städte sortiert eingefügt bekommen und Duplikate ausgeschlossen mit folgendem Code:
Private Sub UserForm_Initialize()
Dim objDic As Object
Dim lngZ As Long
Set objDic = CreateObject("Scripting.Dictionary")
For lngZ = 4 To Sheets("Kundenliste (2)").Cells(Rows.Count, 12).End(xlUp).Row
objDic(Cells(lngZ, 12).Value) = 0
Next
Me.BoxOrt.List = objDic.keys
Dim iLast As Integer, iNext As Integer
Dim iTmp
With BoxOrt
For iLast = 0 To .ListCount - 1
For iNext = iLast + 1 To .ListCount - 1
If .List(iLast) > .List(iNext) Then
iTmp = .List(iLast)
.List(iLast) = .List(iNext)
.List(iNext) = iTmp
End If
Next iNext
Next iLast
End With
End Sub
2. Schritt.
Ist die möglichen Straßen zum ausgewählten Ort sortiert anzeigen zu lassen. Ich scheitere derzeit daran die Spalte 12 (Orte) zu filtern und alle passenden Straßen (Spalte 9) in der 2 Liste sortiert anzeigen zu lassen.

Ich hoffe Ihr könnt mir helfen und wünsche vorerst einen schönen Abend.

Betrifft: AW: VBA - Listbox in Abhängigkeit füllen
von: 1713762.html
Geschrieben am: 18.09.2019 22:49:08
Moin!
Also am einfachsten wäre wirklich, den Autofilter zu nutzen. Da das wie geschriebe wohl ausscheidet, musst du halt "manuell" die Liste filtern. Also von der ersten bis zur letzten beschriebenen Zeile durchgehen. Schauen, ob in Spalte 12 dein gewünschter Ort steht und wenn ja die Straße zu einem Dictionary hinzufügen. Am Ende die keys wieder an die zweite LIste und diese wie beim ersten Mal sortieren lassen. Also fast identisch wie dein erster Code, außer dass du am Anfang noch eine If then PRüfung reinbaust.
Da du Teile des Codes dann zweimal hast, wäre es ggf. sinnvoll, den sortieren Teil in eine Funktion auszulagern. Von der lässt du dir die sortierte Liste zurückgeben.
VG

Betrifft: AW: VBA - Listbox in Abhängigkeit füllen
von: 1713934.html

Geschrieben am: 19.09.2019 15:21:29
Hallo Matthias,
danke für deinen Vorschlag. Mein Gedanke sah dahingehend wie folgt aus:
Private Sub BoxOrt_Change()
Dim objDic As Object
Dim lngZ As Long
Dim iLast As Integer, iNext As Integer
Dim iTmp
Set objDic = CreateObject("Scripting.Dictionary")
BoxStrasse.Clear
Sheets("Kundenliste (2)").Activate
If Sheets("Kundenliste (2)").Cells(Rows.Count, 12).End(xlUp).Row = BoxOrt.Value Then
For lngZ = 4 To Sheets("Kundenliste (2)").Cells(Rows.Count, 9).End(xlUp).Row
objDic(Cells(lngZ, 9).Value) = 0
Next
Me.BoxStrasse.List = objDic.keys
With BoxStrasse
For iLast = 0 To .ListCount - 1
For iNext = iLast + 1 To .ListCount - 1
If .List(iLast) > .List(iNext) Then
iTmp = .List(iLast)
.List(iLast) = .List(iNext)
.List(iNext) = iTmp
End If
Next iNext
Next iLast
End With
On Error Resume Next
Else
End If
End Sub
Leider funktioniert es so aber nicht. Hast du ggf. einen besseren Vorschlag?
Grüße

Betrifft: AW: VBA - Listbox in Abhängigkeit füllen
von: 1713946.html
Geschrieben am: 19.09.2019 17:25:24
SO benutzt man Dictionaries:
https://excelmacromastery.com/vba-dictionary/

Betrifft: AW: VBA - Listbox in Abhängigkeit füllen
von: 1713971.html

Geschrieben am: 19.09.2019 20:00:10
Moin!
Nein, den Anfang mit dem Abgleich meinte ich anders. Du solltest durch alle Zeilen gehen und dort Spalte 12 mit demORt vergelichen. WEnn dass stimmt, die Straße (Spalte 9 ) hinzufügen.
Sollte in etwa so aussehen:
Sheets("Kundenliste (2)").Activate
For lngZ = 4 To Sheets("Kundenliste (2)").Cells(Rows.Count, 12).End(xlUp).Row
If Sheets("Kundenliste (2)").Cells(lngZ, 12) = BoxOrt.Value Then
objDic(Sheets("Kundenliste (2)").Cells(lngZ, 9).Value) = 0
End If
Next
Me.BoxStrasse.List = objDic.keys

VG

Excel-Beispiele zum Thema "VBA - Listbox in Abhängigkeit füllen"

Mehrfachauswahl aus ListBox auslesen download Gefilterte Daten in eine ListBox einlesen download
Dateien aus Listbox auslesen und öffnen download Listbox-Eintrag durch Mausbewegung markieren download
ListBox-Einträge auswechseln download Horizontal angeordnete Elemente in eine ListBox übernehmen download
Tabellenblattnamen in eine ListBox einlesen download ListBox bei Eintrag erweitern download
Als Zellkontextmenü Listbox aufrufen download Dateinamen in Listbox download
Mehrfachauswahl in ListBox auslesen download Ordner eines Verzeichnisses in ListBox übernehmen download
Verzeichnisbaum aufrufen und Dateien in ListBox auflisten download Auswahl aus Tabellenblatt-ListBox in Zellen übernehmen download
Matrix in UserForm-ListBox einlesen download Bereichsnamen in UserForm-ListBox auflisten und editieren download
Ausgewählte Werte aus UserForm-ListBoxes addieren download Mehrfachauswahl aus UserForm-ListBoxes in Tabelle eintragen download
Gruppe von UserForm-ListBoxes über eine Schleife ansprechen download Wahlweise Elemente in UserForm-Text- oder -ListBox markieren download
Wert aus UserForm-TextBox in Tabelle suchen und in ListBox listen download ListBox-Auswahl in Labels übernehmen download
Zellen für Eintrag auswählen und UserForm-ListBox aufrufen download Blattnamen bedingt in ListBox einlesen und Blätter auswählen download
Einlesen von Spaltenköpfen in UserForm-ListBox download Spalten ein-/ausblenden nach UserForm-ListBox-Vorgabe download
Mehrspaltige UserForm-ListBox lückenlos füllen download Makroverzweigungen nach OptionsFeld- oder ListBox-Auswahl download
Aus mehrspaltiger UserForm-ListBox Werte der 1. Spalte auslesen download Werte aus UserForm-ListBox in die Zwischenablage übernehmen download
Wert aus UserForm-ListBox in Tabellenblatt eintragen download Einlesen des Outlook-Adressbuches in eine UserForm-ListBox download
Blattauswahl über UserForm-ListBox mit Mehrfachauswahl download UserForm-TextBox-Werte einer ListBox hinzufügen download
Druck der in einer UserForm-ListBox ausgewählten Arbeitsblätter download Zufallszahl in UserForm-ListBox zentriert anzeigen download
UserForm-ListBox in Abhängigkeit zur aufrufenden Spalte füllen download Mehrspaltige UserForm-ListBox füllen und aktuellen Wert einlesen download
Element in ListBox in Abhängigkeit einer TextBoxeingabe auswählen download Im Abstand von 2 Sekunden durch UserForm-ListBox scrollen download
UserForm-ListBox-Einträge sortieren download Elemente in einer UserForm-ListBox bei Drücken der Entf-Taste lös download
Doppelte Einträge in UserForm-ListBox löschen download Mehrspaltige UserForm-ListBox sortieren download
Ausgewählen Zeilen aus UserForm-ListBox in neue Tabelle download Zweite ListBox in Abhängigkeit der ersten füllen download
In Abhängigkeit einer ComboBox-Auswahl eine ListBox füllen download Werte in zweispaltiger ListBox rechts- und linksbündig darstellen download
Makros in Abhängigkeit vom Zellennamen aufrufen download Markieren in Abhängigkeit vom Quartal download
Makro in Abhängigkeit der Excel-Version verzweigen download ComboBox in Abhängigkeit einer 2. ComboBox ein-/ausblenden download
UserForm in Abhängigkeit einer RefEdit-Auswahl anzeigen download ComboBox2 in Abhängigkeit von ComboBox1 bestücken download
TextBoxes- und Label-Werte in Abhängigkeit verändern download Bereiche in Abhängigkeit eines Zellinhaltes drucken download
ComboBox in Abhängigkeit von einer CheckBox anzeigen download Werte in Spalte A in Abhängigkeit des Werte in Spalte B eintragen download
CommandBar in Abhängigkeit vorhandener Makros erstellen download Grafik in Abhängigkeit einer Zelleingabe einfügen download
Wertermittlung in Abhängigkeit eines Zeichens in einem String download Zeilen in Abhängigkeit des Wertes in Spalte A kopieren download
Namen in Abhängigkeit einer Punktewertung ausgeben download In Abhängigkeit zur RefEdit-Auswahl UserForm aufrufen download
Zahlen in Abhängigkeit von ihrem Wert multiplizieren download In Abhängigkeit von einem Formelwert Makro starten download
In Abhängigkeit von einem Formelwert Mail mit Outlook versenden download TextBox in Abhängigkeit einer ComboBox-Auswahl füllen download
Wert in Abhängigkeit der aufrufenden Schaltfläche eintragen download Zellauswahl in Abhängigkeit des Spaltenkopfes download
Eingaben in Abhängigkeit von dritten Zellen zulassen/verhindern download Datumsbereich in Abhängigkeit von 3 Kriterien markieren download
Multiplikation eines Wertes in Abhängigkeit seiner Position download Tabellenzeilen in Abhängigkeit einer zweiten Tabelle einblenden download
Druckbereich in Abhängigkeit zur Einträgen in einer Spalte download Daten in Abhängigkeit zum aktuellen Datum löschen download
Tabellenblatt-TextBox-Wete in Abhängigkeit zu Drehfeld download Hintergrundfarbe in Abhängigkeit vom Wochentag download
Zeile in Abhängigkeit zur Eingabe in Blätter kopieren download Bedingte Formatierung in Abhängigkeit eines Zellkommentars download
Makroaufruf durch Doppelklick in Abhängigkeit von der Zelladresse download Ändern von Chart-Farben in Abhängigkeit der Daten download
Multiplikation in Abhängigkeit von der Schriftfarbe download Liste in Abhängigkeit einer Gültigkeitsauswahl aktualisieren download
Werte in Abhängigkeit zugeordneter Indizes multiplizieren download Werte in Abhängigkeit einer Gültigkeitslistenauswahl ermitteln download
Einfügen von Werten in Abhängigkeit eines Blattnamens download UserForm-ListBox in Abhängigkeit von Datumsauswahl füllen download
Zellen in Abhängigkeit der aktuellen Uhrzeit markieren download CheckBox-Aktivierung in Abhängigkeit von anderen CheckBoxes download
Hintergrundfarbe in Abhängigkeit des Zellwertes download Zellhintergrund in Abhängigkeit von Zelleintrag festlegen. download
Zellen in Abhängigkeit des Summen-Teilergebnisses markieren download Werte in Abhängigkeit zur Währungsformatierung summieren download
Datenmaske beim Aufruf mit Nullen füllen download ComboBox mit Monatsnamen füllen download
Wert aus Spalte C, wenn Spalten A und B Bedingungen erfüllen download Füllen aller leeren Zellen mit einem Platzhalter download
Adressfeld aus UserForm-ComboBox füllen download Arbeitsmappe nach Ausfüllen der Eingabezellen auf ReadOnly setzen download
Beim Erfüllen einer Bedingungen Farbe für 1 Minute download Bei Zelleingabe andere Zellen füllen download
ComboBox in Arbeitsblatt erstellen und füllen download Leerzellen mit Dummy-Werten füllen download