Dropdown-Liste mit Mehrfachauswahl

Die klassische Dropdown-Liste in einer Excel-Tabelle ist großartig, aber Sie können nur eine Option aus dem präsentierten Satz auswählen. Manchmal ist dies genau das, was Sie möchten, aber es gibt Situationen, in denen der Benutzer die Möglichkeit haben muss, eine Auswahl zu treffen einige Elemente aus der Liste.

Sehen wir uns einige typische Implementierungen einer solchen Mehrfachauswahlliste an.

Option 1. Horizontal

Der Benutzer wählt Elemente nacheinander aus der Dropdown-Liste aus und sie erscheinen rechts von der Zelle, die geändert wird, und werden automatisch horizontal aufgelistet:

Dropdown-Listen in den Zellen C2:C5 werden in diesem Beispiel standardmäßig erstellt, d

  1. Markieren Sie die Zellen C2:C5
  2. Registerkarte oder Menü Datum wähle ein Team Datenvalidierung
  3. Wählen Sie im sich öffnenden Fenster eine Option aus Liste und als Bereich angeben Quelle Zellen mit Quelldaten für Liste A1:A8

Dann müssen Sie dem Tabellenmodul ein Makro hinzufügen, das die gesamte Hauptarbeit erledigt, dh ausgewählte Werte rechts neben den grünen Zellen hinzufügen. Klicken Sie dazu mit der rechten Maustaste auf das Blattregister mit Dropdown-Listen und wählen Sie den Befehl aus Quellcode. Fügen Sie den folgenden Code in das sich öffnende Visual Basic-Editorfenster ein:

Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False If Len(Target.Offset (0, 1)) = 0 Then Target.Offset(0, 1) = Target Else Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Ersetzen Sie gegebenenfalls den sensiblen Bereich der Dropdown-Listen C2:C5 in der zweiten Zeile dieses Codes durch Ihren eigenen.

Option 2. Vertikal

Dasselbe wie in der vorherigen Version, aber die neu ausgewählten Werte werden nicht rechts, sondern unten hinzugefügt:

Dies geschieht auf genau die gleiche Weise, aber der Handler-Makrocode ändert sich geringfügig:

Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("C2:F2")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False If Len(Target.Offset (1, 0)) = 0 Then Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Ersetzen Sie bei Bedarf erneut den sensiblen Bereich der C2:F2-Dropdown-Listen in der zweiten Zeile dieses Codes durch Ihren eigenen.

Option 3. Mit Akkumulation in derselben Zelle

Bei dieser Option erfolgt die Akkumulation in derselben Zelle, in der sich die Dropdown-Liste befindet. Die ausgewählten Elemente werden durch ein beliebiges Zeichen (z. B. ein Komma) getrennt:

Dropdown-Listen in grünen Zellen werden wie bei den vorherigen Methoden auf völlig standardmäßige Weise erstellt. Die ganze Arbeit wird wieder von einem Makro im Blattmodul erledigt:

Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False newVal = Target Application.Undo oldval = Target If Len(oldval) <> 0 And oldval <> newVal Then Target = Target & "," & newVal Else Target = newVal Ende If If Len(newVal) = 0 Then Target.ClearContents Application.EnableEvents = True End If End Sub  

Falls gewünscht, können Sie das Trennzeichen (Komma) in der 9. Codezeile durch Ihr eigenes ersetzen (z. B. ein Leerzeichen oder ein Semikolon).

  • So erstellen Sie eine einfache Dropdown-Liste in einer Excel-Tabellenzelle
  • Dropdown-Liste mit Inhalt
  • Dropdown-Liste mit fehlenden Optionen hinzugefügt
  • Was sind Makros, wie verwendet man sie, wo fügt man Makrocode in Visual Basic ein

Hinterlassen Sie uns einen Kommentar