HERBERS Excel-Forum - das Archiv

Thema: abhängige ComboBoxen

abhängige ComboBoxen
Nordic
Guten Morgen :)
Er hat mal wieder gebastelt (teilweise mit Unterstützung von KI) ;)
Es ist mir in zwei längeren Abendsessions gelungen auf dem Tabellenblatt "Unterrichtsplan" die ComboBoxen mit Werten aus dem Tabellenblatt "ResAng" zu füllen.
(Der Code Funktioniert bis dahin - ob er besser zu machen ist, sei dahin gestellt)
Leider ist es mir jedoch nicht gelungen in Zeile 7 und 24 jeweils die passenden Inhalte aus "ResAng" in Spalten D, F, H, J analog der Themenauswahl zu schreiben.
(Die Inhalte befinden sich immer eine Zelle unter dem ausgewählten Thema)

https://www.herber.de/bbs/user/168638.xlsm

Hat jemand eine Idee wie das umsetzbar ist?

Perspektivisch sollen in den Zeilen 8 und 25 die TN gelistet werden, für die lt. "Projektplan" an diesem Tag das Modul vorgesehen ist.
(zu erkennen an der jeweiligen Zahl, die in den Spalten ab X7 am jeweiligen Tag (X6) bei TN (ab B7) hinterlegt ist)

Lieben Dank im Voraus und Grüße, Nordic(Uwe)

P.S. Gerade entdeckt: auf dem Tabellenblatt "Projektplan" bleibt nur die Zelle V44 leer obwohl die Formel korrekt ist.
AW: abhängige ComboBoxen
schauan
Hallöchen,

(Die Inhalte befinden sich immer eine Zelle unter dem ausgewählten Thema)
Wenn Du die Zelle mit dem ausgewählten Thema hast, ist darunter der .Offset(1)
AW: abhängige ComboBoxen
Alwin Weisangler
Halllo Uwe,

ich bin mal einen anderen Weg gegangen und habe den aufwendigen Code eingedampft.
Die Steuerung der Active X Comboboxen erfolgt über eine Klasse.
Um den jeweiligen Anwendungsfall zuordnen zu können, habe ich den Comboboxen auswertbare Namen verpasst.
Die Combobox zur Auswahl des Themas ist 2 spaltig. Bei Auswahl der Liste wird der Wert der 1. Spalte via LinkedCell in die darunterliegende Zelle ausgegeben und der Wert der 2. Spalte in die Combobox ausgegeben (TextColumn=2).

Damit kommt man mit recht wenig Code ans gewünschte Ergebnis.

Solltest du mal in den Entwicklermodus gehen wird die VBA Ausführung logischerweise abgeschaltet. Das bedeutet, dass danach die Klasse neu registriert werden muss.
Dazu startest du die Prozedur im Modul "Mdl_ClassReg" oder öffnest die Datei neu.
https://www.herber.de/bbs/user/168652.xlsm

Gruß Uwe
AW: abhängige ComboBoxen
Nordic
Hallo Uwe,
erstmal vielen Dank für Deine Mühe und den Lösungsansatz.
Was sich mir nicht erschließt ist zum einen, dass jeweils nur 4 von bis zu 8 möglichen Themen zu sehen sind, zum anderen die " 2 Spalten" (in der Combo alles untereinander).
Wie ich meine KollegInnen, die das "Tool" ebenfalls nutzen sollen, kenne, wird das zu Verwirrungen führen.
Die Texte für Thema und Inhalt im Register "ResAng" sind derzeit Platzhalter.
So wird beispielsweise unter M2 (GC) als Thema "Soziale Medien" zur Auswahl stehen.
Die dazugehörigen Inhalte sind "Definition Netzwerke, Blogs, Foren, usw, Bedeutung und Nutzung für die eigene Jobsuche, Nutzung durch Arbeitgeber, Chancen und Risiken"
Daher dachte ich mir, dass es völlig ausreicht wie Combo das Modul und das gewünschte Thema auszuwählen, die Inhalte analog des Themas werden dann "gezogen" und entsprechend platziert.
Grüße und einen entspannten Abend, Uwe
AW: abhängige ComboBoxen
Nordic
... gerade gesehen (hab's vorhin nur schnell überflogen):
Im Grunde, wie oben geschrieben soweit korrekt, jedoch umkehrt.
In der Combobox soll das Thema, nicht die Inhalte angezeigt werden.
VG, Uwe
AW: abhängige ComboBoxen
Alwin Weisangler
Hallo Uwe,
sorry hatte die Spaltenbreiten vertauscht.
Die Liste Thema ist aber vollständig. Teste mal.
https://www.herber.de/bbs/user/168659.xlsm

Gruß Uwe
AW: abhängige ComboBoxen
Alwin Weisangler
Hallo Uwe,

es war noch eine kleine Sache drin, die einer speziellen Behandlung bedurfte.
Bei Anwendung von TextColumn = 2 wird leider bei Neustart der .Value in die Combobox geschrieben, statt den Wert aus 2. Spalte (.TextColumn=2).
Wer weiß es schon, warum MS das so gemacht hat.
Um beim Start eine korrekte Abbildung des letzten gespeicherten Zustandes sicherzustellen, habe ich dazu diese Inhalte ins Kommentarfeld eines versteckten Listobjects abgelegt.
Man könnte es auch mit den CustomDocumentProperties machen. Dann ist es in Oberfläche von Excel nicht sichtbar.
Ich habe mal einen Text nebst Zeilenumbruch zum Testen reingetan.
https://www.herber.de/bbs/user/168662.xlsm

Gruß vom Namensvetter
AW: abhängige ComboBoxen
Nordic
Moin Namesvetter ;)
Vorab: Auch wenn ich es nicht in Gänze verstanden habe; Sieht super aus :) Vielen Dank!

Was mich natürlich brennend interessiert, wo find ich denn das "versteckten Listobject" und wie bekomm man einen Zeilenbruch in einer Zelle hin?
So'n Zeilenumbruch bietet natürlich Möglichkeiten zur besseren Lesbarkeit, aufm Monitor hatte ich den erstmal so nicht.

Beim Testen bin ich gerade über einen Laufzeitfehler gestolpert:
Wenn das Sheet "Unterrichtsplan" aktiv ist und die Datei geschlossen wird schlägt die Methode 'Rows' für das Objekt '_global' fehl.
Ich hoffe mal, dass es nicht damit zusammenhängt, dass ich dem Workbook_Open() am Ende ein "Sheets(1).Activate" hinzugefügt habe.
Zum einen da hauptsächlich auf Projektplan "gearbeitet" wird, zum anderen wird die KW Auswahl erst gefüllt wenn Unterrichtsplan aktiviert wird.
Wird die Datei direkt mit Unterrichtsplan geöffnet bleibt die KW Auswahl leer.

https://www.herber.de/bbs/user/168663.xlsm

Was einem Kollegen gestern noch auffiel:
Ich habe bei der Unterrichtsplanung den Raum 4 unterschlagen, in dem überwiegend EC stattfindet.
Wenn ich diesen noch hinzufüge, was muss ich dann konkret wo anpassen?

Angenehmen Freitag Dir, Grüße Uwe
AW: abhängige ComboBoxen
Alwin Weisangler
Hallo Uwe,

der Fehler passiert nur, wenn du die Datei das erste Mal öffnest, da VBA gesperrt ist.
Einfach freigeben und ohne zu speichern schließen. Dann neu starten und weg ist der Fehler.

Das sind die Ausführungseinschränkungen beim Erststart einer runtergeladenen Datei.

Wenn du im Blatt "ResAng" ein Zimmer hinzufügst, dann speichere die Datei und starte neu.

Beim Schließen taucht ein Fehler auf, dass die Klasse die letzte Zeile in Tabelle4 nicht lesen kann. Der Fehler lässt sich nicht erklären. Sich weitere Fehler häufen, könnte das auf einen Defekt der Datei hindeuten.
Den Fehler habe ich behandelt.
Das passiert nur wenn im Blatt "ResAng" etwas geändert wird.

Das Listobject habe ich Blatt "ResAng" vom B1:B3 angelegt.

Mit erzwungenen Zeilenumbrüchen tut sich Excel schwer. Nimm einfach zum Text aufbereiten einen Texteditor.
https://www.herber.de/bbs/user/168671.xlsm


Gruß Uwe



AW: abhängige ComboBoxen
Alwin Weisangler
Ich habe für die Fehlerbehandlung einen fachlich sauberen Weg via boolsche Variable per
Property-Variable eingebaut und die On Error Notlösung entfernt.

https://www.herber.de/bbs/user/168675.xlsm

Gruß Uwe
AW: abhängige ComboBoxen
Nordic
Hi Uwe,
ich trau's mich fast schon nicht zu schreiben, gerade da Du Dir schon so viel Mühe gemacht hast.
Beim Schließen, ob ich nun speichere oder nicht, hängt sich die Datei bei
Tabelle4.ListObjects(1).Comment = varThemen

in Wookbook_Deactivate auf.
Den Raum "4" habe ich hinzugefügt, die Controls analog der anderen benannt und durchnummeriert sowie die beiden Schleifen in den Sub's "ModulLaden" und "ModulThema" auf 12 hochgesetzt.
In Thema werden nun, wie kürzlich, beide Einträge (Thema und Inhalt) angezeigt bzw der Inhalt in Thema geschrieben.
Hab ich das eine oder andere Schräubchen vergessen zu drehen?

https://www.herber.de/bbs/user/168689.xlsm

Einen schönen Abend und Grüße vom Namensvetter.

AW: abhängige ComboBoxen
Alwin Weisangler
Hallo Uwe,

anbei deine Datei.
Bei mir kam 2x der Fehler, dass Schreiben ins Comment nicht klappt. Danach funktionierte es problemlos.

Baue vorsorglich eine neue Datei, da ich den Verdacht nicht loswerde, dass diese Datei schon eine kleine Macke hat.
Wenn du in die neue Datei Inhalte in einfügst, tue dies nur mit "Werte einfügen", um zu verhindern, dass der eventuell bestehende Defekt mit in die neue Datei übernommen wird.

Der Comboboxenstatus wird nun nicht mehr ins .Comment des Listobjects geschrieben.
Nun werden diese Werte in den .CustomDocumentProperties in eine entsprechende Variable geschrieben.

https://www.herber.de/bbs/user/168691.xlsm

Denke daran, wenn du diese Datei das erste mal startest --> VBA + Bearbeitung freigeben --> Schließen ohne Speichern --> Neu öffnen.
Ist umständlich, aber sinnvoll um Folgeprobleme zu verhindern.


Gruß Uwe