22.12.2015, 12:06
(Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2015, 12:27 von Rabe.
Bearbeitungsgrund: Formatierung der Forensoftware überlassen
)
Liebes Forum,
nach Vorlage:
http://www.clever-excel-forum.de/Thread-...achauswahl
und:
https://www.youtube.com/watch?v=EM8z5oAF5t8
habe ich eine Excel Tabelle mit drei DropDown Menüs erstellt. Jetzt würde ich gerne die Mehrfachauswahl für jedes Menü Programmieren, habe aber keine Erfahrung in VBA. Über die Forumssuche und Google habe ich leider nichts gefunden was mir weiterhilft.
Zusätzlich soll in der Spalte G4:G58 und H4:H58 das gleiche Programm funktionieren. Ich habe verstanden dass es mehrere Lösungsansätze gibt, vielleicht könnt Ihr mir auf die Sprünge helfen?
Die Programmvorlage sieht bis jetzt so aus:
nach Vorlage:
http://www.clever-excel-forum.de/Thread-...achauswahl
und:
https://www.youtube.com/watch?v=EM8z5oAF5t8
habe ich eine Excel Tabelle mit drei DropDown Menüs erstellt. Jetzt würde ich gerne die Mehrfachauswahl für jedes Menü Programmieren, habe aber keine Erfahrung in VBA. Über die Forumssuche und Google habe ich leider nichts gefunden was mir weiterhilft.
Zusätzlich soll in der Spalte G4:G58 und H4:H58 das gleiche Programm funktionieren. Ich habe verstanden dass es mehrere Lösungsansätze gibt, vielleicht könnt Ihr mir auf die Sprünge helfen?
Die Programmvorlage sieht bis jetzt so aus:
Code:
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. L4:L58) durchführen
If Not Application.Intersect(Target, Range("L4:L58")) 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
wert_old = Target.Value
Target.Value = wertnew
If wert_old <> "" Then
If wertnew <> "" Then
If Right(wert_old, Len(wertnew)) = wertnew Then
Target.Value = Left(wert_old, Len(wert_old) - Len(wertnew) - 2)
Else
Target.Value = wert_old & ", " & wertnew
End If
End If
End If
End If
End If
Errorhandling:
Application.EnableEvents = True
End Sub