Kenne ich. Kommt manchmal vor, insb. beim Importieren. Bei mir hier läuft der Code aber auch mit Zahlen, die als Text formatiert und dargestellt werden (Zellausrichtung ist da links, bei normalen Zahlen rechts). Kann deshalb nicht so richtig nachvollziehen, woran es liegt. Also machen wir Schluß mit der einfache Lösung und fahren die ersten schweren Geschütze auf. Habe aus Zeitgründen schnell mal eine Sortierung gesucht und angepasst. Beides Subund Function ins Blatt / Modul. Jetzt wird erst wie vorher eine unsortierte "Liste" erstellt und anschließend in der function sortiert. Klappt hier auch wieder - bin mal gespannt, wie es bei dir aussieht. Vg
Sub gütligkeit()
Dim gültigliste As String
Dim i As Long
Dim letzte As Long
With Sheets("Analysedaten")
gültigliste = ","
'soll ausschließlich nur SPALTE A betrachten
letzte = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To letzte
If .Cells(i, 1) <> "" Then
If InStr(1, gültigliste, "," & .Cells(i, 1) & ",", vbTextCompare) = 0 Then gültigliste = gültigliste & .Cells(i, 1) & ","
End If
Next i
End With
If gültigliste <> "," Then
gültigliste = Mid(gültigliste, 2, Len(gültigliste) - 2)
gültigliste = BubbleSort(gültigliste)
With Sheets("Tabelle2").Range("G5").Validation
.Delete
.Add Type:=xlValidateList, Formula1:=gültigliste
End With
End If
End Sub
Function BubbleSort(a As Variant)
Dim i As Long, n As Long, Temp As Variant
Dim sortiert As Boolean
Dim test
test = Split(a, ",")
n = UBound(test)
Do
sortiert = True
For i = 0 To n - 1
If test(i) > test(i + 1) Then
Temp = test(i)
test(i) = test(i + 1)
test(i + 1) = Temp
sortiert = False
End If
Next i
Loop Until sortiert
ergebnis = Join(test, ",")
BubbleSort = ergebnis
End Function
|