Excel Drop-Down-Liste mit Mehrfachauswahl erstellen: Die ultimative Anleitung

Melden

Standardmäßig erlaubt eine Drop-Down-Liste (Datenüberprüfung) in Microsoft Excel nur die Auswahl eines einzigen Elements. Sobald Sie einen zweiten Wert auswählen, wird der vorherige überschrieben.

Mit einem kleinen, einfachen Trick über Visual Basic for Applications (VBA) können Sie Excel jedoch beibringen, mehrere Werte in derselben Zelle durch ein Komma getrennt zu sammeln. In dieser Anleitung erfahren Sie Schritt für Schritt, wie Sie das ohne Vorkenntnisse umsetzen.


Schritt 1: Die Auswahlliste erstellen

Zuerst benötigen Sie die Daten, die später im Menü auswählbar sein sollen.

  1. Öffnen Sie Ihre Excel-Tabelle.
  2. Schreiben Sie Ihre Optionen in eine Spalte (z. B. in die Spalten G1:G5 oder auf ein separates Tabellenblatt).
    • Beispiel:
      • Option A: Apfel
      • Option B: Banane
      • Option C: Kirsche
      • Option D: Orange

Schritt 2: Das reguläre Drop-Down-Menü einrichten

Nun richten wir das Standard-Drop-Down über die Datenüberprüfung ein.

  1. Markieren Sie die Zelle(n), in denen das Drop-Down-Menü erscheinen soll (z. B. Spalte A bzw. Zelle A2:A10).
  2. Wechseln Sie im Menüband auf die Registerkarte Daten.
  3. Klicken Sie auf Datenüberprüfung (in der Gruppe Datentools).
  4. Wählen Sie im Reiter Einstellungen:
    • Zulassen: Wählen Sie Liste aus.
    • Quelle: Klicken Sie in das Feld und markieren Sie Ihre Liste aus Schritt 1 (z. B. =$G$1:$G$4).
  5. Klicken Sie auf OK.

Hinweis: Wenn Sie die Zelle jetzt testen, können Sie immer noch nur eine Option wählen. Das ändern wir im nächsten Schritt.


Schritt 3: Den VBA-Code für die Mehrfachauswahl einfügen

Da Excel keine native Einstellung für Mehrfachauswahlen in einer Zelle bietet, nutzen wir ein kurzes Makro.

  1. Klicken Sie mit der rechten Maustaste unten auf den Reiter des Tabellenblatts, auf dem sich Ihr Drop-Down befindet (z. B. Tabelle1).
  2. Wählen Sie Code anzeigen aus. (Alternativ drücken Sie ALT + F11 und doppelklicken im Projekt-Explorer links auf das entsprechende Tabellenblatt).
  3. Es öffnet sich das weiße Code-Fenster. Kopieren Sie den folgenden Code und fügen Sie ihn exakt so dort ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim AlterWert As String
    Dim NeuerWert As String

    ' Verhindert Endlosschleifen bei Wertänderung
    On Error GoTo FehlerBehandlung

    ' Prüfen, ob nur eine Zelle geändert wurde und eine Datenüberprüfung existiert
    If Target.CountLarge > 1 Then Exit Sub
    If Target.Validation.Type = 3 Then
        Application.EnableEvents = False
        NeuerWert = Target.Value
        Application.Undo
        AlterWert = Target.Value
        Target.Value = NeuerWert

        ' Falls bereits ein Wert vorhanden ist, neuen Wert mit Komma anhängen
        If AlterWert <> "" Then
            If NeuerWert <> "" Then
                ' Prüft, ob der Wert bereits vorhanden ist (vermeidet Duplikate)
                If InStr(AlterWert, NeuerWert) = 0 Then
                    Target.Value = AlterWert & ", " & NeuerWert
                Else
                    Target.Value = AlterWert
                End If
            End If
        End If
    End If

FehlerBehandlung:
    Application.EnableEvents = True
End Sub
  1. Schließen Sie das VBA-Fenster über das rote „X“ oben rechts, um zur Tabelle zurückzukehren.

Schritt 4: Die Datei richtig speichern

Da Ihre Arbeitsmappe jetzt Programmcode (VBA) enthält, müssen Sie das Format anpassen:

  1. Klicken Sie auf Datei > Speichern unter.
  2. Ändern Sie den Dateityp zwingend auf:
    • *Excel-Arbeitsmappe mit Makros (.xlsm)**
  3. Klicken Sie auf Speichern. (Speichern Sie als normale .xlsx, wird der Code beim Schließen unwiderruflich gelöscht).

Schritt 5: Funktionsweise und Test

Gehen Sie nun in Ihre Zielzelle (z. B. A2):

  1. Wählen Sie den ersten Wert aus (z. B. Apfel).
  2. Öffnen Sie die Liste erneut und wählen Sie einen zweiten Wert (z. B. Banane).
  3. Ergebnis: Die Zelle zeigt nun: Apfel, Banane.

Nützliche Anpassungen des Codes:

  • Anderes Trennzeichen gewünscht?
    Wenn Sie statt eines Kommas z. B. ein Semikolon oder einen Zeilenumbruch möchten, ändern Sie im Code diese Zeile:

    • Für Semikolon: Target.Value = AlterWert & "; " & NeuerWert
    • Für Zeilenumbruch: Target.Value = AlterWert & vbCrLf & NeuerWert (Aktivieren Sie in Excel hierfür den „Textumbruch“ in der Zelle).
  • Inhalt löschen / zurücksetzen:
    Klicken Sie die Zelle an und drücken Sie einfach die Taste Entf (Delete), um alle Auswahlen auf einmal zu leeren.

0