NAbend ! Hier mit richtiger Sortierung (zumindest bei mir :-) ). Probiere mal, ob es passt. Habe es jetzt aber so programmiert, dass nur Zahlen genommen werden. Buchstaben (bspw. a23 etc) werden ignoriert. Müsste man wenn nötig extra implementieren. Wenn es klappt, schicken ich morgen noch eine kommentierte Version hinterher. Schönen Abend noch.
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) <> "" And IsNumeric(.Cells(i, 1)) Then
If InStr(1, gültigliste, "," & .Cells(i, 1) & ",", vbTextCompare) = 0 Then gültigliste = gültigliste & CLng(.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 Long
Dim sortiert As Boolean
Dim test
test = Split(a, ",")
n = UBound(test)
Do
sortiert = True
For i = 0 To n - 1
If CLng(test(i)) > CLng(test(i + 1)) Then
Temp = CLng(test(i))
test(i) = CLng(test(i + 1))
test(i + 1) = Temp
sortiert = False
End If
Next i
Loop Until sortiert
ergebnis = Join(test, ",")
BubbleSort = ergebnis
End Function
|