Hallo hallo,
ik heb ergens een stukje code gevonden om meerdere selecties vanuit een dropdown lijst te krijgen. Het probleem is echter dat, wanneer ik meerdere selecties heb en ik één van de selecties nogmaals aanklik, die selectie niet weg gehaald wordt.
Selecteer ik Jan en vervolgens Kees, dan geeft de cel "Jan, Kees" aan. Selecteer ik dan nogmaals Kees, dan moet het weer "Jan" zijn. Bij onderstaande code werkt dat echter niet.
Wat gaat hier verkeerd?
Private Sub Worksheet_Change(ByVal Target As Range)
' Initializing variables
Dim oldVal As String
Dim newVal As String
' Checking for changes in the drop down lists
Application.EnableEvents = True
If Target.Address = "$AI$6" Or Target.Address = "$AI$7" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
Exit Sub
' Adding the multiple selected items to the list
Else
If Target.Value = "" Then
Exit Sub
Else
Application.EnableEvents = False
newVal = Target.Value
Application.Undo
oldVal = Target.Value
If oldVal = "" Then
Target.Value = newVal
Else
If InStr(oldVal, newVal) = 0 Then
Target.Value = oldVal & ", " & newVal '& vbNewLine &
Else
Target.Value = oldVal
End If
End If
End If
End If
End If
Application.EnableEvents = True
End Sub
ik heb ergens een stukje code gevonden om meerdere selecties vanuit een dropdown lijst te krijgen. Het probleem is echter dat, wanneer ik meerdere selecties heb en ik één van de selecties nogmaals aanklik, die selectie niet weg gehaald wordt.
Selecteer ik Jan en vervolgens Kees, dan geeft de cel "Jan, Kees" aan. Selecteer ik dan nogmaals Kees, dan moet het weer "Jan" zijn. Bij onderstaande code werkt dat echter niet.
Wat gaat hier verkeerd?
Private Sub Worksheet_Change(ByVal Target As Range)
' Initializing variables
Dim oldVal As String
Dim newVal As String
' Checking for changes in the drop down lists
Application.EnableEvents = True
If Target.Address = "$AI$6" Or Target.Address = "$AI$7" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
Exit Sub
' Adding the multiple selected items to the list
Else
If Target.Value = "" Then
Exit Sub
Else
Application.EnableEvents = False
newVal = Target.Value
Application.Undo
oldVal = Target.Value
If oldVal = "" Then
Target.Value = newVal
Else
If InStr(oldVal, newVal) = 0 Then
Target.Value = oldVal & ", " & newVal '& vbNewLine &
Else
Target.Value = oldVal
End If
End If
End If
End If
End If
Application.EnableEvents = True
End Sub