Die Qual der Wahl: Mehrspaltige Dropdown-Listen 31

Über einen kleinen Trick kannst Du mehrspaltige Dropdown-Listen erzeugen
 

Manchmal reicht ein einfaches Dropdown-Feld nicht, um zuverlässig den richtigen Wert auszuwählen. Nämlich dann, wenn z.B. in einer Namensliste Einträge mehrfach vorkommen. Welcher ist dann der Richtige?

Jetzt kommt er schon wieder mit seinen Dropdown-Listen daher!, wirst du vielleicht denken. Ich gebe zu, man könnte fast meinen, dass dies nach den beiden Artikeln hier und hier mein neues Steckenpferd ist. Nicht ganz.

Aber wer sich schon immer mal gefragt hat, wie man in einem Dropdown-Feld eine mehrspaltige Liste angezeigt bekommt, sollte sich diesen Artikel doch ansehen:

Und so geht’s:

Kombinationsfeld

Zur Veranschaulichung habe ich ein einfaches Auftragsformular erstellt, in das ich mit Hilfe meiner Dropdown-Liste die Kundenadresse übernehmen möchte:

Auftragsformular

Auftragsformular

In einem zweiten Arbeitsblatt befindet sich die Liste meiner Kunden. Damit ich den Tabellenbereich später einfacher ansprechen kann, habe ich für den Bereich den Namen „Kundenliste“ vergeben:

Kundenliste

Kundenliste

Nun füge ich über die Schaltfläche „Einfügen“ aus den Entwicklertools meine Dropdown-Liste im Namensfeld meines Auftragsformulars ein. Dabei handelt es sich um das Kombinationsfeld aus der Gruppe „ActiveX-Steuerelemente“:

Kombinationsfeld

Kombinationsfeld

Nachdem ich es mit der Maus auf die gewünschte Größe angepasst habe, rufe ich über einen Rechtsklick auf das neue Feld das Eigenschaften-Menü auf:

Eigenschaften anpassen

Eigenschaften anpassen

In der langen Liste der möglichen Eigenschaften interessieren uns momentan nur die folgenden fünf:

Relevante Eigenschaften

Relevante Eigenschaften

  • ColumnCount: Meine Kundenliste hat 5 Spalten, daher steht hier die „5“
  • ColumnWidths: Für jede Spalte definiere ich die gewünschte Spaltenbreite. Da sich in der ersten Spalte die Kundennummer befindet, die mich im Auswahlfeld nicht interessiert, setze ich diese Breite auf 0 (Null).
  • LinkedCell: Das ist das Feld, welches mein gewähltes Ergebnis enthalten soll. Da die Kundennummer das erste Feld in meiner Auswahlliste ist (auch wenn es dort nicht angezeigt wird), wird damit im Feld F2 die Kundennummer gespeichert.
  • ListFillRange: Hier steht der Name, den ich vorhin für meine Kundenliste vergeben haben
  • ListWidth: Das ist Gesamtbreite der Auswahlliste, also der Summe aller Spaltenbreiten

Das war’s auch schon. Wir können das Eigenschaftenfenster wieder schließen und müssen nur noch den Entwurfsmodus wieder abschalten, damit wir unsere Dropdown-Liste testen können:

Entwurfsmodus abschalten

Entwurfsmodus abschalten

Und so sieht die mehrspaltige Dropdown-Liste in der Anwendung aus. Die Kundennummer des gewählten Eintrags landet wie gewünscht in Zelle F2:

Mehrspaltige Dropdown-Liste

Mehrspaltige Dropdown-Liste

Zu guter letzt hole ich mir über drei kleine SVERWEIS-Funktionen über die Kundennummer die restlichen Adressangaben in die entsprechenden Felder:

Mit SVERWEIS die Adresse holen

Mit SVERWEIS die Adresse holen

Fertig ist mein Auftragsformular.

Das könnte dich auch interessieren:
Und immer daran denken: Excel beißt nicht!

P.S. Die Lösung ist immer einfach. Man muss sie nur finden.
(Alexander Solschenizyn)

P.P.S. Das Problem sitzt meistens vor dem Computer.



Avatar-Foto

Über Martin Weiß

Er ist das Gesicht hinter dem Blog "Der Tabellenexperte". Seit 2013 veröffentlicht er hier Beiträge zu seinem Lieblingsprogramm: Microsoft Excel. Martin Weiß ist zertifizierter Microsoft Excel Expert und verdient sein Geld als selbständiger Excel-Berater, -Entwickler und -Trainer.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

31 Gedanken zu “Die Qual der Wahl: Mehrspaltige Dropdown-Listen

  • Avatar-Foto
    Oliver Pohl

    Ich finde den Artikel ‚Die Qual der Wahl: Mehrspaltige Dropdown-Listen‘ sehr spannend. Wenn ich aber die Tabelle, in welcher die Quelldaten liegen, erweitern will, habe ich Probleme.

    Ich hatte den Bereich als ‚Tabelle‘ formatiert und dieser Tabelle den Namen Kundenliste gegeben – das DropDown beinhaltete auch alle zu diesem Zeitpunkt in der Tabelle befindlichen Datensätze. Eine neu hinzugefügte Adresse wurde allerdings nicht übernommen…. Warum?

  • Avatar-Foto
    Ottmar Zimmermann

    Hallo Martin,
    die mehrspaltige DropDown-Liste ist interessant. Die Frage, die sich mir dennoch stellt ist: geht anstelle eines Kombinationsfeldes auch ein normales Auswahlfeld über Daten/Gültigkeit bzw Gültigkeitsprüfung?
    Viele Grüße Ottmar

    • Avatar-Foto
      Martin Weiß

      Hallo Ottmar,

      mit der normalen Gültigkeitsprüfung geht es nur bedingt. Es kann hier als Quelle immer nur der Inhalt einer Spalte angegeben werden, aber es hindert Dich grundsätzlich nichts daran, über eine entsprechende Hilfsspalte in Deiner Quelltabelle 2 oder mehr Spalten über eine VERKETTEN-Funktion zusammenzufügen und diese dann als Dropdown-Werte zu hinterlegen. Allerdings wird dann auch der komplette verkettete Inhalt in die Zelle übernommen.

      Grüße,
      Martin

  • Avatar-Foto
    Joe

    Guten Morgen Martin,
    als Neuling in der Excel Gemeinde habe ich mich mit zunehmenden Erfolg mit den Tipps und Tricks beschäftigt. Aber nun eine Frage eines noch Unwissenden. Du schreibst du hast mal eben „ein einfaches Auftragsformular erstellt“. Sieht ja auch gut aus, aber WIE erstelle ich so etwas schönes einfaches. Entweder habe ich eine Denkblockade oder einfach zu dumm ich bekomme es einfach nicht hin. Gruß Joe

    • Avatar-Foto
      Martin Weiß

      Hallo Joe,

      das ursprüngliche Formular aus dem ersten Screenshot oben besteht nur aus einer einfachen Excel-Tabelle, die über die Funktion „Als Tabelle formatieren“ (in der Registerkarte „Start“) ein wenig ansprechender gestaltet wurde. Damit bekommt man die abwechselnden Streifen mit einem Klick hin.
      Ansonsten habe ich einfach noch die Gitternetzlinien ausgeblendet (Register „Ansicht“, Haken bei „Gitternetzlinien“ entfernen).

      Mehr steckt da nicht dahinter.

      Schöne Grüße,
      Martin

  • Avatar-Foto
    Jutta

    Hallo und vielen Dank erstmal für deine tolle Seite! Ich habe mir schon einige Tipps abgeschaut. Leider funktioniert bei mir der ListFillRange Eintrag nicht. Wenn ich den Namen der Tabelle eingebe verschwindet er immer gleich wieder. Woran könnte das liegen?

    • Avatar-Foto
      Martin Weiß

      Hallo Jutta,

      ich nehme an, die hast die Quelle als „intelligente“ Tabelle formatiert, richtig (Start – Als Tabelle formatieren)?
      Leider lassen sich die Namen von formatierten Tabellen nicht im ListFillRange verwenden. Du musst also die Tabelle in einen normalen Bereich zurückkonvertieren und danach wieder einen Namen für den Bereich festlegen. Dann sollte es funktionieren.

      Grüße,
      Martin

    • Avatar-Foto
      Martin Weiß

      Hallo dsv,

      das hat keinen besonderen Grund. Manchmal gibt es eine Beispieldatei zum Download, und manchmal eben nicht.

      Schöne Grüße,
      Maritn

  • Avatar-Foto
    von Rüden, Achim

    Hallo Martin, diese mehrspaltige Auswahlliste ist genau das was ich gesucht habe. Dafür erst einmal ein herzliches Dankeschön. Aber wie im richtigen Leben auch erreicht man nicht immer das Optimum … vielleicht kannst du helfen?
    Ich habe eine Excel-Tabelle mit über 4000 Zeilen und jeweils 97 Spalten mit Kontaktmaterial. Diese Liste im Tabellenblatt ‚PROBANT‘ hat den Namen ‚tab_probant‘. Nun möchte ich im 2. Tabellenblatt mittels Dropdown die Daten auslesen. Das funktioniert aber nur, wenn ich unter ListFillRange den Pfad ‚Probant!Spalte:Spalte‘ festlege die ich angezeigt haben möchte; mit dem Ergebnis dass auch die Leerzeilen im Auswahlfeld angezeigt werden.
    Gibt es einen Weg diese Leerzeilen nicht auszulesen? Ich danke dir schon jetzt für deine Hilfe und verbleibe
    mit freundlichen Grüßen aus dem Hochsauerland
    Achim

    • Avatar-Foto
      Martin Weiß

      Hallo Achim,

      die Eigenschaft „ListFillRange“ ist leider ziemlich zickig und macht immer wieder Probleme, wenn man versucht, einen definierten Namen anstelle eines Zellbezugs zu verwenden. Manchmal scheint es zu klappen, meistens aber nicht. Daher kann ich hier leider keinen Tipp geben.

      Schöne Grüße,
      Martin

  • Avatar-Foto
    Melanie Cholewa

    Hallo Martin,
    ich habe meine Excel Tabellen mithilfe der dynamischen dropdown Funktion verknüpft. Habe nun jedoch das Problem, das ich über dieses Dropdown eine weitere Information übertragen möchte. Für einen Tipp wäre ich sehr dankbar.
    Gruß Melanie

    Auftragsformular
    Datum; Material (dynamischer Dropdown); Maße; Stärke (dynamischer dropdown);Menge; Artikelnummer

    Materialliste im 2 Tabellenblatt
    Material1; Material2; Material3; …
    1mm 3mm 1,5mm
    2mm 4mm 2mm
    3mm 5mm 2,5mm
    4mm 6mm 3mm

    Wenn ich in der Materialliste jeweils eine zweite Spalte mit der zugehörigen Artikelnummer pro Materialstärke einfüge wird diese Spalte im Dropdown als Spalte1 mit aufgeführt. Das irritiert sehr.

    • Avatar-Foto
      Martin Weiß

      Hallo Melanie,

      ich weiß ja jetzt nicht, wie du die dynamischen Dropdown-Listen genau aufgebaut hast. Aber wenn ich es richtig verstanden habe, soll die Artikelnummer automatisch angezeigt werden, wenn ein bestimmtes Material in einer bestimmten Stärke ausgewählt wurde. Das hört sich für mich eher nach einem SVERWEIS mit zwei Suchkriterien an. Vielleicht hilft dir ja dieser Artikel ein wenig weiter:
      https://www.tabellenexperte.de/super-sverweis/

      Schöne Grüße,
      Martin

  • Avatar-Foto
    Marko

    Hallo Martin, Dein Blog ist toll, -leider habe ich mit den dynamischen, abhängigen Auswahllisten irgendwie keinen Erfolg gehabt, ich bin allerdings auch kein Excel-Guru.
    Ich versuche folgendes Szenario in Excel umzusetzen:
    Es geht um eine Liste mit Aufgaben, die abgearbeitet werden müssen. Zur Zeit benutzen 3 Abteilungen diese Aufgabenliste, aber nicht jede Aufgabe appliziert für jede Abteilung (nicht applizierende Aufgaben sollen garnicht angezeigt werden). Zusätzlich zu den StandardAufgaben gibt es für auch spezielle Aufgaben, die von Kundenspezifika oder auch Abteilungsspezifika abhängen.
    Irgendwie habe ich mich total verzettelt und wäre um Rat oder ein Beispiel dankbar.

    • Avatar-Foto
      Martin Weiß

      Hallo Marko,

      das klingt jetzt sehr speziell. Abteilungsspezifische Aufgaben lassen sich vielleicht noch abbilden, aber auch hier müsste man schon ganz genau den Aufbau der Datei und die Abhängigkeiten kennen. Sonst wird es mit einem Tipp schwierig.

      Schöne Grüße,
      Martin

  • Avatar-Foto
    Jürgen Rieder

    Hallo Martin, danke für diese Lösung. Habe auch eine wunderbare Auswahlliste bekommen und mir mit SVERWEIS die benötigten Daten geholt. Ein Problem habe ich aber. Die Quelle enthält Namen, Adressen und zwei weitere Angaben. Der Name „Müller“ kommt 3x vor, jeweils mit einer anderen zugehörigen Adresse. Wenn ich den 2. oder 3. „Müller“ auswähle, erscheinen aber immer die Daten des 1. „Müller“ in den SVERWEIS Feldern? Wie kann das gelöst werden? Brauche ich evt. ein zweites Kriterium und wo definiere ich das dann?

    • Avatar-Foto
      Jürgen Rieder

      OK – habe das Problem selbst gelöst, indem ich in die erste Spalte der Quelle einen eindeutigen Index (Nummer) eingesetzt habe. Das hat genügt…

      • Avatar-Foto
        Martin Weiß

        Hallo Jürgen,

        freut mich, dass du eine Lösung gefunden hast. Mein Vorschlag wäre in eine ähnliche Richtung gegangen, ich hätte nur zwei (oder drei) vorhandene Felder miteinander kombiniert, um wieder einen eindeutigen Wert zu erhalten.

        Schöne Grüße,
        Martin

        • Avatar-Foto
          Jürgen

          Frage (oder Hinweis?):
          Wenn ich den SVERWEIS in eine WENNNV-Funktion einbette, dann erhalte ich bei fehlenden Kunden zwar den formulierten Text, bei einigen vorhandenen Kunden „zicken“ die SVERWEIS- Werte aber rum? D.h. es werden teilweise die Angaben eines anderen Kunden in die SVERWEIS Zellen eingetragen – und somit falsche Werte weitergegeben. Gibt es dazu Hinweise oder muss ich das so hinnehmen? Habe mal irgendwo gelesen, dass SVERWEIS Probleme machen könnte.
          Habe eine andere funktionierende Lösung gefunden. Aber die Problematik interessiert mich…

          • Avatar-Foto
            Martin Weiß

            Hallo Jürgen,

            der SVERWEIS macht eigentlich nur dann Probleme, wenn man den dritten Parameter FALSCH vergisst. Nur dadurch ist sichergestellt, dass nach einer exakten Übereinstimmung gesucht wird. Ohne diesen Parameter kann es eben passieren, dass ein anderer, vermeintlich ähnlicher Wert gefunden wird.

            Schöne Grüße,
            Martin

  • Avatar-Foto
    Wolfgang Jakobi

    Hallo Martin,

    super! Hab das probiert mit einem UserForm da kann ich allerdings die Eigenschaften Linkedcell und Lisfillrange und dann wird meine Liste natürlich nicht angezeigt. Auf das UserForm kann ich verzichten, ich will buchen und das mache ich gleich im Journal mit Deinen Dropdownfelder in der Tabelle

    • Avatar-Foto
      Martin Weiß

      Hallo Wolfgang,

      freut mich sehr, dass dir der Tipp weitergeholfen hat. Und insbesondere, wenn damit sogar eine UserForm-Version überflüssig wird.

      Schöne Grüße,
      Martin