DropDown Liste mit Mehrfachauswahl

Sie kennen sicherlich die Möglichkeit, über sogenannte DropDown-Listen (Auswahlliste) eine Auswahl zu treffen. Eine Auswahlliste wird über das Menü Daten / Datentools / Datenüberprüfung erzeugt. Wenn Sie als Gültigkeitskriterium Liste auswählen und unter Quelle die einzelnen Auswahlmöglichkeiten durch Semikolon (;) getrennt angeben, erscheint nach Beenden des Befehls in der gewählten Zelle die entsprechende DropDown-Liste.

Alternativ kann anstatt der einzelnen Auswahlbegriffe auch eine Bezug zu einer Excel-Tabelle angegeben werden. In unserem Beispiel befinden sich die Auswahlbegriffe auf einem eigenen Tabellenblatt. Um diese Liste als mögliche Auswahlkriterien für die Datenüberprüfung festzulegen, geben Sie dieser einfach einen Namen, z. B. auswahl, siehe Abbildung 1.


Abbildung 1

Nachdem der Bereichsname für die Auswahlliste definiert ist, können wir die Gültigkeitsprüfung auf unserem Erfassungsblatt einrichten. Im Beispiel sollen für die wöchentliche Besprechung die Teilnehmer über ein DropDown-Menü ausgewählt werden.

Markieren Sie dazu den Zellbereich B4:B14 und tragen nun den Bereichsnamen auswahl als Listen-Quelle in die Datenüberprüfung als Gültigkeitskriterium ein, siehe Abbildung 2.


Abbildung 2

Damit stehen die Auswahlmöglichkeiten in den genannten Zellen per DropDown-Liste zur Verfügung.

Allerdings kann standardmäßig nur jeweils ein einziger Begriff, im Beispiel also ein einziger Teilnehmer ausgewählt werden. Sobald ein anderer Teilnehmer ausgewählt wird, wird der vorher ausgewählte wieder überschrieben und mit dem neuen ersetzt.

Um diese Problematik zu beseitigen, können Sie den nachfolgenden VBA-Code verwenden. Damit wird die Mehrfachauswahl per DropDown-Liste ermöglicht.

Erfassen Sie den VBA-Code im Code-Modul des Tabellenblatts, auf dem Sie die Funktion benötigen, da der Code die über die Change-Funktion des Arbeitsblatts aktiviert wird.

Private Sub Worksheet_Change(ByVal Target As Range)
'** Mehrfachauswahl über DropDown-Liste (Gültigkeitsprüfung)
'** Einfügen im Code-Container des betreffenden Arbeitsblattes

'** Dimensionierung der Variablen
Dim rngDV As Range
Dim wert_old As String
Dim wertnew As String

'** Errorhandling
On Error GoTo Errorhandling

'** Mehrfachauswahl im definierten Bereich (Bsp. B4:B14) durchführen
If Not Application.Intersect(Target, Range("B4:B14")) Is Nothing Then

  '**Range definieren
  Set rngDV = Target.SpecialCells(xlCellTypeAllValidation)
  If rngDV Is Nothing Then GoTo Errorhandling
  
  '** Prüfen, ob eine gültige Zelle ausgewählt wurde und Werte eintragen
  If Not Application.Intersect(Target, rngDV) Is Nothing Then
    Application.EnableEvents = False
    wertnew = Target.Value
    Application.Undo
    wertold = Target.Value
    Target.Value = wertnew
    If wertold <> "" Then
      If wertnew <> "" Then
        Target.Value = wertold & ", " & wertnew
      End If
    End If
  End If
  Application.EnableEvents = True
End If

Errorhandling:
Application.EnableEvents = True
End Sub


Wenn Sie den Code eingefügt haben, steht die Funktion der Mehrfachauswahl wie gewünscht zur Verfügung, siehe Abbildung 3.


Abbildung 3

Sie können nun beliebig viele Auswahlmöglichkeiten zu einer einzigen Zellen hinzufügen. Die einzelnen Begriffe werden mit Kommata getrennt. Wenn Sie ein anderes Trennzeichen wie Semikolon (;) oder Schrägstrich (/) verwenden möchten, so können Sie den VBA-Code in folgender Zeile einfach anpassen, siehe rotes Zeichen.

      If wertnew <> "" Then
        Target.Value = wertold & "/ " & wertnew
      End If

 

Die Beispieldatei können Sie über über den folgenden Download-Link herunterladen.

Partnerlinks

Relevante Artikel

Wir benutzen Cookies
Ihre Zufriedenheit ist unser Ziel, deshalb verwenden wir Cookies. Mit diesen ermöglichen wir, dass unsere Webseite zuverlässig und sicher läuft, wir die Performance im Blick behalten und Sie besser ansprechen können. Cookies werden benötigt, damit technisch alles funktioniert und Sie auch externe Inhalte lesen können. Des Weiteren sammeln wir unter anderem Daten über aufgerufene Seiten, getätigte Käufe oder geklickte Buttons, um so unser Angebot an Sie zu Verbessern. Mehr über unsere verwendeten Dienste erfahren Sie unter „Weitere Informationen“. Mit Klick auf „Akzeptieren“ erklären Sie sich mit der Verwendung dieser Dienste einverstanden. Ihre Einwilligung können Sie jederzeit mit Wirkung auf die Zukunft widerrufen oder ändern.