Die Qual der Wahl: Mehrspaltige Dropdown-Listen 15

Ü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.



Kommentar erstellen

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

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

  • 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?

  • 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

    • Martin Weiß Beitragsautor

      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

  • 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

    • Martin Weiß Beitragsautor

      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

  • 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?

    • Martin Weiß Beitragsautor

      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