In Formularen sind abhängige Drop-Down-Listen oftmals unabdingbar. Was bedeutet das? Wählt man im ersten Feld eine Oberkategorie "Obst" oder "Fleischwaren", dann sollen in einer zweiten Auswahlliste nur die entsprechenden Einträge zur Option stehen. Wir haben diese abhängigen Drop-Down-Listen bereits im Beitrag "Dropdown einer Dropdown-Liste erstellen - abhängige Dropdown" illustriert. Das funktioniert dann einwandfrei, wenn sich die Inhalte der Unterkategorien nicht ändern. Ansonsten ist es notwendig, die Bereiche (Namen) von "Obst" oder "Fleischwaren" den neuen Umständen entsprechend anzupassen (Bereich erweitern oder reduzieren). Es suggeriert also eine dynamische Drop-Down-Liste. Wie man einen solchen Namen (mit der Formel BEREICH.VERSCHIEBEN) anlegt, kannst Du in diesem Beitrag nachschlagen: Bereich eines Namens automatisch erweitern
Wir würden also alle Namen für die Drop-Down-Listen entsprechend anlegen, wie im Screenshot unten dargestellt (mit der Formel "BEREICH.VERSCHIEBEN", referenzierend auf das separate Blatt "Parameter"):
Wählt man im Anschluss im Formular die erste Option zu "Essen", sollte in der abhängigen Drop-Down-Liste dann die jeweilige Unterkategorie abrufbar sein. Dies ist jedoch nicht der Fall, die Auswahl-Liste lässt sich mit Klick auf den Erweiterungspfeil gar nicht erst aufrufen und anzeigen. Wie können wir also sowohl abhängige wie auch dynamische Drop-Down-Listen erstellen? Das Vorgehen zeige ich Dir nachfolgend Schritt für Schritt auf, lösche jedoch bitte im Namensmanager (Menüpunkt "Formeln" → "Namensmanager") allfällige bereits definierten Namen für Deine Drop-Down-Listen.
Abhängige, dynamische Drop-Down-Listen (Lösungsansatz)
Wir müssen die ursprünglichen Daten auf dem separaten Blatt "Parameter" also anders definieren, um jederzeit unsere Auswahl-Kriterien ergänzen und unmittelbar nachher im Formular abrufen können. Gehe dazu im Menüband auf das Register "Einfügen" und selektiere die Option "Tabelle". Du erstellst nun also eine Tabelle und wählst als erstes den Bereich "A1:A3" aus, um die Oberkategorie abzubilden. Falls Du die Zeile 1 inkludierst, wähle zudem "Tabelle hat Überschriften".
Wiederhole den Vorgang auch für die Unterkategorien "Fleischwaren" und "Obst".
Wenn Du nun in der Spalte A Fleischwaren und Obst markierst, siehst Du links oben im Namensfeld (normalerweise steht da die Zelle "A2" und so weiter) "Tabelle1" stehen. Der Name "Tabelle1" ist aktuell also stellvertretend für diesen Bereich. Klicke in dieses Namensfeld und überschreibe einfach "Tabelle1" mit "Essen" - bestätige mit der Enter-Taste. Du wirst in dem Namensfeld kurz etwas aufblinken sehen, danach steht allerdings wieder "Tabelle1" drin. Mache das nun auch für B2:B3 (=Tabelle2) und setze da den Namen "Fleischwaren" sowie für C2:C4 (=Tabelle3) und definiere da "Obst". Rufe nun erneut Deinen Namensmanager auf (Menüpunkt "Formeln" → "Namensmanager"). Dort siehst Du die Resultate entsprechend - beachte auch die Spalte "Bezieht sich auf", die auf die jeweilige Tabelle referenziert:
Navigiere nun auf Dein effektives Formular. Wähle die Hauptkategorie (Essen) und versuche nun, Deine Unterkategorie (Drop-Down-Einstellung: =INDIREKT(B5) -- wobei B5 dem Feld mit Fleischwaren/Obst entspricht) kann nun korrekt aufgerufen werden:
Zuletzt kannst Du prüfen, ob Deine Listen auf dem Blatt "Parameter" tatsächlich dynamisch sind. Gib einfach einen neuen Begriff unterhalb ein, beispielsweise "Schweinefleisch" als zusätzliche Fleischware. Die Tabelle erweitert sich automatisch (Du siehst dies auch farblich) - und auf der Drop-Down-Liste im Formular kannst Du die neue Option ebenfalls gleich selektieren.
Auch dieser Beitrag war sehr hilfreich.
Gibt ja doch immer wieder mal Änderungen. 🙂
Viele Grüße von der Waterkant
Der Beitrag war sehr hilfreich, allerdings ist in meinem Fall der Drop-Down-Bereich nicht geschützt. Man kann also, ohne das Drop-Down-Menü aufzurufen, eingene Einträge machen.
Gibt es eine Möglichkeit, dies zu umgehen?
Hallo Monika
Man hat die Möglichkeit, einfach mit der Tastatur in der Zelle etwas einzugeben - ohne das Drop-Down-Menü zu öffnen. Allerdings wird standardmässig eine Fehlermeldung angezeigt, wenn ich einen nicht vordefinierten Wert eingeben möchte (oder mich vertippe).
Möchtst Du erlauben, dass auch andere Einträge möglich sind, welche nicht in der vordefinierten Drop-Down-Liste hinterlegt sind?
Angenommen, Du hast eine Drop-Down-Liste mit drei Länder: "Deutschland", "Österreich" und "Schweiz". Wenn jemand nun "Frankreich" eingibt, kann dies ein Fehler sein. Falls dies jedoch auch erlaubt sein sollte, gehe via Daten --> Datenüberprüfung (wo Du auch die Dropdown-Liste überhaupt generierst). Im Fenster mit den Listen-Einstellungen hast Du oben zwei weitere Register. Wähle "Fehlermeldung" und deaktiviere die Anzeige von Fehlermeldungen, wenn "ungültige" Daten eingegeben werden. Danach kann man einen beliebigen Wert in der Zelle hinterlegen.
Liebe Grüsse
Roman
Habe den Lösungsweg in einem eigenen Beitrag festgehalten:
https://excelblog.ch/beliebige-eingaben-trotz-drop-down-menue-zulassen/