Mehrere DropDown-Listen mit Mehrfachauswahl
#1
Hallo,
es wäre klasse, wenn ihr mir mit folgendem Problem weiterhelfen könntet.

Ich möchte in meiner Tabelle insgesamt drei DropDown-Listen mit Mehrfachauswahl erstellen. 
Dazu habe ich den bekannten Code verwendet (siehe unten) und die Mehrfachauswahl für eine DropDown-Liste erstellt. Das klappt bei mir aber nur für eine Liste, nicht für drei..

Meine Frage: Wie muss der Code angepasst werden, dass die Mehrfachauswahl für drei Listen funktioniert und nicht nur für eine?

(Mehrfachauswahl für die Zeilen F4:F104, G4:G104, H4:H104)

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("F4:F104")) 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



Vielen Dank für eure Hilfe!
Top
#2
Hi Basti

Hier hatte ich den Code schon einmal an Bedürfnisse angepasst.
https://www.clever-excel-forum.de/Thread...te-Auswahl

Bei dir bin ich mir aber noch nicht sicher ob ich dein Wunsch richtig verstanden habe.

Ich Rate mal.
Ersetze die Zeile

If Not Application.Intersect(Target, Range("F4:F104")) Is Nothing Then

durch die

If Not Application.Intersect(Target, Range("F4:H104")) Is Nothing Then

Gruß Elex

PS: Wenns nicht passt dann bitte Beispieldatei zeigen.
Top
#3
Hi Elex, 
danke sehr für die Lösung - funktioniert bestens! 
Simpler, als vorher angenommen..

Lg 
Basti

[/quote]
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste