Anzeige
Archiv - Navigation
1900to1904
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 Combobox in der Userform

abhängige Combobox in der Userform
15.10.2022 10:03:57
Maurice
Guten Morgen,
ich möchte in der Userform eine abhängie ComboBox haben.
Wähle ich in der ComboBox1 was aus sollte in der ComboBox2 nur das passende dazu ausgewählt werden.
Derzeit habe ich wie bei einer abhängigen Dropdown mehreTabellen erstellt, die Haupttabelle und die Untertabellen sind so benannt wie das was in der Haupttabelle steht.
Jetzt ist die erste Frage so lassen oder lieber eine einzelne tabelle erstellen wo alles drinnen steht?
derzeit habe ich es so:

Private Sub UserForm_Activate()
'combo befüllen
ComboBox1.List = A_Datenbank.ListObjects("tbl1").DataBodyRange.Value
ComboBox2.List = A_Datenbank.ListObjects("tbl2").DataBodyRange.Value
'Daten befüllen
With B_Laufender_Posten
TextBoxID.Value = .Cells(p_aktuelleZeile, 16).Value
ComboBox1.Value = .Cells(p_aktuelleZeile, 9).Value
TextBox1.Value = .Cells(p_aktuelleZeile, 15).Value
TextBox2.Value = .Cells(p_aktuelleZeile, 13).Value
TextBox3.Value = .Cells(p_aktuelleZeile, 14).Value
ComboBox2.Value = .Cells(p_aktuelleZeile, 10).Value
End With
End Sub

Private Sub UserForm_Initialize()
' id befüllen
TextBoxID.Value = WorksheetFunction.Max(B_Laufender_Posten.Columns(1)) + 1
'combo befüllen
ComboBox1.List = A_Datenbank.ListObjects("tbl1").DataBodyRange.Value
ComboBox1.ListIndex = 0
ComboBox2.List = A_Datenbank.ListObjects("tbl2").DataBodyRange.Value
ComboBox2.ListIndex = 0
End Sub
So hat man ja nur feste Tabellen drinnen in der ComboBox, ist es hier möglich eine abhängige ComboBox zu machen?
schöne Grüße und ein schöne Wochenende

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: abhängige Combobox in der Userform
15.10.2022 13:14:55
onur
Und wir sollen jetzt die passende Tabelle inkl. Comboboxen selbst basteln, um dir helfen zu können ?
AW: abhängige Combobox in der Userform
17.10.2022 23:32:06
Oberschlumpf
Hi,
es wäre schön, wenn du sinnvollere Bsp-Datenwerte in allen Zellen einträgst - und nicht überall A,B,C oder ähnlich verwendest.
Denn wie soll ich wissen, wenn ich Anrede = A auswähle, was genau dann für LAND verfügbar sein darf?
Auswahl Anrede UND Auswahl Land müssen schon irgdwie zueinander passen - das muss also auch für mich erkennbar sein; vergiss nicht: ich hab gar keine Ahnung, was du vorhast, weil ich nich weiß, was in deinem Kopf vorgeht.
Ciao
Thorsten
Anzeige
AW: abhängige Combobox in der Userform
18.10.2022 17:43:58
Oberschlumpf
Du schreibst: "Das war jetzt das einfachste für mich"
ja, hab ich gemerkt, aber..ähh, sorry...wenn du möchtest, dass wir nicht zu faul sind, dir zu helfen, dann sei auch du bitte nicht zu faul, gescheite Daten zu liefern.
Danke für die neue Bsp-Datei - damit konnte ich nicht nur viel besser arbeiten, sondern nur damit konnte ich arbeiten. Ich wollt dich mit Hinweis "nur A,B,C als Einträge reichen nicht" nicht ärgern, es war schlicht nicht möglich, mit solchen Daten etwas zu programmieren.
...guckst du hier...
https://www.herber.de/bbs/user/155740.xlsm
Nach Klick auf den Button in Tabelle1 öffnet sich das Userform, und alle Controls werden so gefüllt, wie du es schon kennst.
Wenn du nun im Userform auf den Button "Bearbeiten" klickst, öffnet sich das andere Userform - und erst mal sieht auch hier nix anders aus.
Aber öffne jetzt mal die ComboBox "Bezirk"...
Es werden - wie gewünscht - nur die Bezirke oder Bundesländer oder wie man es nennen mag von dem Land angezeigt, welches in der anderen ComboBox ausgewählt ist.
So, noch nicht Userform schließen...wähl in der ComboBox "Land" erst mal ein anderes Land aus.
Und öffne nun wieder die ComboBox "Bezirk" - und wieder werden nur die zum gerade geänderten Land gültigen Bezirke zur Auswahl angeboten :-)
Konnte ich helfen?
Anzeige
AW: abhängige Combobox in der Userform
18.10.2022 19:56:53
Maurice
Mit dem einfachsten meinte ich wie es am besten erkläre
A soll nur A oder AA oder AAA zur Auswahl stehen
B soll nur B oder BB oder BBB zur Auswahl stehen
....
Beim nächsten mal mache ich es besser
Ja du konntest so helfen, da es perfekt Funktioniert.
Jetzt versuche ich nur gerade zu verstehen wie du es gemacht hast.
Hier sucht er ja die Auswahl Landname (bsp Deutschland)

        With Sheets("Tabelle2") 'wenn im Original anderer Blattname, dann hier anpassen
For Each lliobLand In .ListObjects
If InStr(lliobLand.Name, landname) Then
fcFillComboBezirk = .ListObjects(lliobLand.Name).DataBodyRange.Value
Exit For
End If
Next
End With
Am bsp. Deutschland, es ist ja in 2 Tabellen vorhanden, was sorgt dafür das er nur im Tabellenkopf danach sucht und dann was drunter steht zur Auswahl stellt?
Anzeige
AW: abhängige Combobox in der Userform
19.10.2022 11:49:17
Oberschlumpf
Hi Maurice,
ok, ich versuch mal zu erklären - würden wir zusammen vorm PC sitzen, wär das kein Problem :-), aber mit Schreiben zu erklären = ?...mal schauen, ob ich das hinbekomme :-)
1. jede Codezeile, die zwischen...

With Sheets("Tabelle2")
End With
...steht und mit einem . beginnt, bezieht sich nur auf das Blatt "Tabelle2"
2. mit...

For Each lliobLand In .ListObjects
...werden alle intelligenten Tabellen (und nur die) im Blatt "Tabelle2" überprüft
Innerhalb For Each / Next kann man jetzt alles abfragen, was diese intelligenten Tabellen betrifft.
Mich interessiert aber nur der Name jeder intelligenten Tabelle.
lliobLand.Name ist immer der jeweilige Name der gerade geprüften intelligenten Tabelle
Du hattest im Blatt "Tabelle2" allen intelligenten Tabellen diese Namen gegeben:

tblLand in Spalte A
tblSpanien in Spalte D
tblDeutschland in Spalte G
tblOesterreich in Spalte J
tblPolen in Spalte M

3. mit...

If InStr(lliobLand.Name, landname) Then
...prüfe ich, ob in einem der Namen der intelligenten Tabelle der Inhalt von landname enthalten ist.
landname ist der Eintrag, den du zuvor in der ComboBox "Land" ausgewählt hattest; ja, z Bsp "Deutschland"
Und weil "Deutschland" nur in "tblDeutschland" enthalten ist, wird auch genau nur bei Kontrolle von "tblDeutschland" vom Code ein Treffer gemeldet - sozusagen.
4. weil Treffer = JA, werden mit...

fcFillComboBezirk = .ListObjects(lliobLand.Name).DataBodyRange.Value
...alle Einträge aus der intelligenten Tabelle "tblDeutschland" an die Funktion fcFillComboBezirk übergeben, die damit wiederum die ComboBox Bezirk füllt.
Und wenn du nun in ComboBox Land z Bsp "Polen" auswählst, würde mein Code die intelligente Tabelle mit dem Namen "tblPolen" finden und nur ihre Einträge in ComboBox Bezirk als Auswahl zur Verfügung stellen.
---
Der Grund, wieso in "Tabelle2" nicht 2x Deutschland gefunden und (falsch) angezeigt wird, ist, weil die intelligente Tabelle tblLand (in der steht "Deutschland" ja auch drin) nie von meinem Code (Funktion) beachtet wird.
Konnte ich auch mit diesen Erklärungen helfen?
Wie gesagt, würd ich neben dir sitzen, und dir alles am Monitor erklären können - dann hättest du schon längst "ach sooo!! ja, ist klar! ich hab alles verstanden!" gesagt :-)
Ciao
Thorsten
Anzeige
AW: abhängige Combobox in der Userform
20.10.2022 09:24:23
Oberschlumpf
du musst wegen meiner neuen Antworterklärung nich weiter antworten - aber es wäre schon cool, wenn du es tun würdest!
AW: abhängige Combobox in der Userform
22.10.2022 07:13:00
Maurice
Guten Morgen,
Sorry bisschen stressig Woche.
Das Grundprinzip habe ich mit deiner Erklärung verstanden!
Ich konnte es bei mir einbauen und habe das bsp Land und Bezirk raus genommen und meinen Bedürfnissen angepasst.
Auch für die UserForm die beim "Neu" Button auf geht habe ich es hinbekommen.
Wenn ich immer solche Erklärungen bekommen würde, dann kann ich das bald vielleicht alles allein.
Eine Frage habe ich da noch.
In Punkt 2 schreibst du man kann alles abfragen was intelligente Tabellen betrift.
Wenn ich zum bsp nur eine Intelligente Tabelle habe, diese aber mehre Spalten hat dann sollte man die einzelnen Spalten ja auch abfragen können oder?
Im Dropdown wählt man als bsp ein land aus und spalte 3 und 5 solte er mir rein schreiben in ein Textfeld.
Das passt aber nicht zu diesem Thema und das schwirrt mir nur so im Kopf rum was man da noch mit rein machen könnte.
Darauf musst du hier also nicht Antworten ;)
DANKE SCHÖN
Anzeige
AW: abhängige Combobox in der Userform
22.10.2022 10:04:18
Oberschlumpf
Hi,
UND OB DAS GEHT mit dem Auslesen von z Bsp Spalte 3 + 5 in intelligenten Tabellen!
Problem ist gerad nur, du hast nicht die Zeile genannt^^ :-)
Aber ok, WIE DAS GANZE funktioniert, verrat ich dir hier auch gar nicht :-)
Dafür mach einfach n neuen Beitrag auf; denn deiner (dieser) ist ja schon im Archiv verschwunden.
Ich wollt dich nur kurz informieren, DASS ES GEHT :-)
Ciao

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige