Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1560to1564
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Abhängige Listbox

Abhängige Listbox
11.06.2017 21:06:44
Markus
Hallo Piet,
Hallo an alle die mir helfen könnten,
erst mal danke für die Unterstützung.
Ich war im Urlaub und bin erst heute wieder angekommen.
Kann leider bei dem ersten Thread nicht antworten, daher hier wieder neu.
Die Befüllung der Listboxen funktioniert, aber leider noch nicht ganz fehlerfrei.
Hab folgendes bei Deinem Code geändert:
-Erst Leerzeile einfügen
-Listboxen immer „nicht“ sichtbar, sondern nur wenn Auswahl möglich.
Jetzt hab ich noch das Problem dass teilweise Leerzeilen in den Listboxen angezeigt werden.
Wähle folgendes aus, dann weißt Du was ich meine:
Listbox1: Spanien
Listbox2: SP3
Dann kommt in Listbox3 oben erst eine Leerzeile die nicht da sein darf.
https://www.herber.de/bbs/user/114202.xlsm
Bitte nochmals um Hilfe.
Danke und Gruß
Markus

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abhängige Listbox
11.06.2017 21:47:37
MB12
Hallo Markus
gib mal in Tabelle 4 Spalte C bei den ersten beiden Sp3 einen Wert ein und beobachte, was dann passiert.
Und dann lösche zB bei Ungarn den ersten Eintrag.
Gruß, Margarete
AW: Abhängige Listbox
12.06.2017 06:54:31
Markus
Guten Morgen,
wenn ich bei Sp3 Werte eingebe werden diese auch übernommen.
Wenn ich bei Ungarn einen Wert lösche dann wird dort auch eine Leerzeile eingefügt.
Hab leider keine Ahnung wie ich die Listboxen OHNELeerzeilen füllen kann.
Bitte um Eure Hilfe.
Danke Markus
... And AC.Value <> ""
12.06.2017 08:29:19
Matthias
Hallo
   For Each AC In .Range("C2:C" & lz)
If AC.Offset(0, -1).Value = Stadt Then
If AC.Value  AC.Offset(1, 0) And AC.Value  "" Then _
UserForm1.ListBox3.AddItem AC.Value
End If
Next AC
Gruß Matthias
Anzeige
AW: ... And AC.Value <> ""
12.06.2017 09:06:13
Markus
Hallo Mathias,
das mit der Leerezeile funktioniert super.
Jetzt ist nur noch das Problem dass bei z.B. SP2 die Listbox3 trotzdem aktiv ist.
Wie kann ich die noch inaktiv setzten wenn in Listbox3 gar kein Wert zu Listbox2 steht?
Danke und Gruß
Markus
AW: ... And AC.Value <> ""
12.06.2017 09:31:14
Matthias
Hallo
Na genauso wie Du es in Listbox3 machst.
Dort fragst Du doch auch
    If ListBox4.ListCount > 1 Then _
ListBox4.Visible = True
Warum nicht auch in Listbox2 ?
Allerdings sollte die Prüfung auf >0 erfolgen
Also in Listbox2 vor end sub
If ListBox3.ListCount > 0 Then ListBox3.Visible = True

Oder direkt so:
ListBox3.Visible = ListBox3.ListCount > 0
Gruß Matthias
Anzeige
AW: ... And AC.Value <> ""
12.06.2017 18:05:39
Markus
Hallo Matthias,
manchmal sieht man den Wald vor lauter Bäumen nicht. Hab das mit der Zeile übersehen... Danke Dir.
Hab allerdings gerade bemerkt dass ich noch ein Problem hab, hoffe das letzte.
Zu SP2 und SP3 gibt es den Wert "Test 01" in ListBox3.
Der wird aber nur bei SP3 angezeigt.
Wie bekomm ich den auch bei SP2?
https://www.herber.de/bbs/user/114228.xlsm
Danke im Voraus.
Gruß
Markus
if AC.Value <> ""
13.06.2017 09:14:47
Matthias
Hallo
Sub ListBox3_füllen()
With Worksheets("Tabelle4")
Stadt = UserForm1.ListBox2.Text
lz = .Cells(.Rows.Count, 1).End(xlUp).Row
UserForm1.ListBox3.Clear
'Schleife für alle Strassen auflisten
For Each AC In .Range("C2:C" & lz)
If AC.Offset(0, -1).Value = Stadt Then
         If AC.Value  "" Then
UserForm1.ListBox3.AddItem AC.Value
End If
End If
Next AC
End With
End Sub

Private Sub ListBox2_Change()
If ListBox2.Value  "" Then
Call ListBox3_füllen
ListBox3.ListIndex = -1
ListBox3.Visible = ListBox3.ListCount > 0
End If
End Sub
Gruß Matthias
Anzeige
m.letzter BT: Falsch, dann kommen wieder doppelte
13.06.2017 09:40:07
Matthias
Hallo
Vergiss den letzte Vorschlag einfach wieder.
Da kommen dann wieder Doppelte.
Habs eben erst bemerkt.
Gruß Matthias
AW: m.letzter BT: Falsch, dann kommen wieder doppelte
14.06.2017 09:13:57
Markus
Hallo zusammen,
leider funktioniert es noch nicht.
Entweder gehen Werte ab oder es kommen doppelte Werte in der ListBox.
Kann mir wer helfen?
Danke
Markus
Nur Unikate sammeln mit Scripting.Dictionary
14.06.2017 11:21:53
Matthias
Hallo
Mal ganz anders aufgesetzt, als Bsp. für Listbox3
Sub ListBox3_füllen()
Dim objDic As Object, Bereich As Range
Dim lz&, Stadt$, AC As Range
Set objDic = CreateObject("Scripting.Dictionary")
Stadt = UserForm1.ListBox2.Text
With Worksheets("Tabelle4")
lz = .Cells(.Rows.Count, 1).End(xlUp).Row
Set Bereich = .Range("C2:C" & lz) 'relevanten Bereich ermitteln
For Each AC In Bereich
If AC.Offset(, -1) = Stadt And AC.Value  "" Then
objDic(AC.Value) = 0 'Nur Unikate sammeln
End If
Next
UserForm1.ListBox3.Clear
UserForm1.ListBox3.List = objDic.keys 'Unikate der ListBox zuweisen
End With
End Sub
Gruß Matthias
Anzeige
AW: Nur Unikate sammeln mit Scripting.Dictionary
14.06.2017 19:14:08
Markus
Hallo Matthias,
sieht gut aus.
Danke
Danke für Deine Rückmeldung :-) owT
14.06.2017 23:23:46
Matthias

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige