07.08.2021, 17:03
(Dieser Beitrag wurde zuletzt bearbeitet: 07.08.2021, 18:04 von WillWissen.
Bearbeitungsgrund: Codetags
)
Hallo meine lieben :)
ich habe für ein ziemlich komplexes excel verschiedene dropdownfelder erstellt, mit dem man mehrere möglichkeiten auswählen kann und auch, dass auswahlen gelöscht werden, wenn man sich nochmal anklickt.
dafür hab ich eine range festgelegt (in meinem fall c200:g500)
jetzt zu meinem problem: ich hab in zelle c11 ein dropdown mit suchfunktion (aus einer anderen datei, per sverweis werden gewisse daten in gewisse zellen übertragen), durch die mehrfachauswahlmöglichkeit lässt er mir aber den suchbegriff stehen und die ganzen sverweise funktionieren klarerweise nicht mehr - wie kann ich diese zelle im code für die mehrfachauswahl exkludieren?
bin ziemlicher vba-noob und hab mir den code aus div. videos usw. zusammengestoppelt.. gibts eine funktion "excludeCell("c11") oder sowas?
das hab ich bisher:
ich habe für ein ziemlich komplexes excel verschiedene dropdownfelder erstellt, mit dem man mehrere möglichkeiten auswählen kann und auch, dass auswahlen gelöscht werden, wenn man sich nochmal anklickt.
dafür hab ich eine range festgelegt (in meinem fall c200:g500)
jetzt zu meinem problem: ich hab in zelle c11 ein dropdown mit suchfunktion (aus einer anderen datei, per sverweis werden gewisse daten in gewisse zellen übertragen), durch die mehrfachauswahlmöglichkeit lässt er mir aber den suchbegriff stehen und die ganzen sverweise funktionieren klarerweise nicht mehr - wie kann ich diese zelle im code für die mehrfachauswahl exkludieren?
bin ziemlicher vba-noob und hab mir den code aus div. videos usw. zusammengestoppelt.. gibts eine funktion "excludeCell("c11") oder sowas?
das hab ich bisher:
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngDV As Range
Dim oldVal As String
Dim newVal As String
Dim lUsed As Long
If Target.Count > 1 Then GoTo exitHandler
On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If rngDV Is Nothing Then GoTo exitHandler
If Intersect(Target, rngDV) Is Nothing Then
'do nothing
Else
Application.EnableEvents = False
newVal = Target.Value
Application.Undo
oldVal = Target.Value
Target.Value = newVal
If Target.Column = 3 Then
If oldVal = "" Then
'do nothing
Else
If newVal = "" Then
'do nothing
Else
lUsed = InStr(1, oldVal, newVal)
If lUsed > 0 Then
If Right(oldVal, Len(newVal)) = newVal Then
Target.Value = Left(oldVal, Len(oldVal) - Len(newVal) - 2)
Else
Target.Value = Replace(oldVal, newVal & ", ", "")
End If
Else
Target.Value = oldVal & ", " & newVal
End If
End If
End If
End If
End If
exitHandler:
Application.EnableEvents = True
End Sub