Excel-Code für Mehrfachauswahl in Dropdown-Listen?
Hallo zusammen,
Ich versuche gerade ein Excel-Dokument zu erstellen, bei dem eine Mehrfachauswahl aus Dropdown-Listen möglich ist. Das heißt aus einer Liste sollte es möglich sein mehrere Werte anzuwählen. Das habe ich auch mit dem untenstehenden VisualBasic-Code gemeistert. Allerdings habe ich erstens das Problem, dass auch eine Mehrfachauswahl des immer gleichen Wertes möglich ist. Theoretisch könnte also in einer Zelle x-mal derselbe Werte auftauchen. Dies soll natürlich nicht möglich sein. Bei Doppelauswahl desselben Wertes soll dieser aus der Zelle wieder verschwinden.
Mein zweites Problem ist, dass ich bislang nur 2 zwei Dropdown-Listen mit Mehrfachauswahl eingefügt bekomme. Sobald ich eine dritte Spalte versuche zu implementieren, bekomme ich eine Fehlermeldung für meinen Code.
Dadurch, dass ich mich mit dem Ganzen nicht so wirklich auskenne, wäre es sehr nett, wenn mir jemand helfen könnte.
Danke!
Bisheriger Code:
Private Sub Worksheet_Change(ByVal Target As Range)
** Mehrfachauswahl über DropDown-Liste
'** 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 "Abteilungen" und "Themen" (Bsp. J2:J2000, I2:I2000) durchführen
If Not Application.Intersect(Target, Range("J2:J2000", "I2:I2000")) 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
2 Antworten
Hallo, kannst noch bitte beschreiben, was mit den ausgewählten Werten weiter passieren soll?
Vielleicht ist dieser Ansatz ja einfacher:
Entwicklertools/Einfügen/Kontrollkästchen
Deren Name ist natürlich frei definierbar und in der zugeordneten Zellverknüpfung wird der Inhalt auf WAHR oder FALSCH gestellt.
Mehrfachauswahl im Sinne von Filter geht nicht?
![- (Microsoft Excel, Visual Basic, VBA)](https://images.gutefrage.net/media/fragen-antworten/bilder/502133998/0_big.png?v=1684850290000)
Auf dem Worksheet eine "ListBox" oder "ComboBox" ActiveX platzieren und dann die Eigenschaft auf Multiselect setzen:
![- (Microsoft Excel, Visual Basic, VBA)](https://images.gutefrage.net/media/fragen-antworten/bilder/503093613/0_big.png?v=1685548880000)