dank Yal bin ich im folgenden Thread schon weit voran gekommen:
https://www.herber.de/forum/cgi-bin/callthread.pl?index=1860224
Leider stecke ich in der Umsetzung beim letzten Schritt fest:
Mein mangelndes Verständnis reicht nur für diese Umformulierung aus:
Const bolSorted As Boolean = True ' Legt fest, ob die Werte noch sortiert werden.
Dim blockedEvent As Boolean
Dim TargetOldText As String
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strResult As String
Dim strTarget As String
Dim arrSorted As Variant
Dim i As Long
If Target.Cells.Count > 1 Then Exit Sub
If Target.Column 0 Then
strResult = Replace(strResult, strTarget & ", ", "")
strResult = Replace(strResult, strTarget, "")
Else
strResult = TargetOldText & ", " & Target.Value
End If
If bolSorted Then
arrSorted = Split(strResult, ", ")
strResult = ""
Call Selectionsort(arrSorted)
For i = 0 To UBound(arrSorted)
strResult = strResult & arrSorted(i) & ", "
Next i
If Len(strResult) > 1 Then _
strResult = Left$(strResult, Len(strResult) - 2)
End If
Target.Value = strResult
Else
Target.Value = Target.Value
End If
If Target.Cells.Count = 1 Then TargetOldText = Target.Value
Else
blockedEvent = False
End If
Else
TargetOldText = ""
End If
End If
End Sub
Dim OldTarget As Range 'Gedächnisvariable
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Test: wo waren wir
If Not OldTarget Is Nothing Then
If Not Intersect(OldTarget, Range("C:C")) Is Nothing Then
'... hier tut sich was
End If
End If
'Gedächnis setzen: da wo wir jetzt sind, aber bei nächsten Aufruf nicht mehr werden.
Set OldTarget = Target
End Sub
Private Sub Selectionsort(ByRef data As Variant)
Dim OG&, i&, j&, k&, h As Variant
OG = UBound(data)
For i = 0 To OG - 1
h = data(i)
k = i
For j = i + 1 To OG
If data(j)
Leider funktioniert so nichts mehr. Danke für die Hilfe!
Gruß Hannes