gibt es eine Möglichkeit eine Listbox oder mehrere per Laufzeit zu sortieren? (Habe dazu schon einige Funktionen im Web gefunden, allerdings immer mit einem Laufzeitfehler)
Meine Listboxen befinden sich nämlich in einer Userform, in der per "ADD"-Button ein Eintrag hinzugefügt wird, wenn das passiert soll in auch direkt diese Listbox sortieren.
Also wäre es mit einem Parameter für die Listbox nicht schlecht (da ich mehrere habe)
Den Code den ich aktuell benutze und nicht funktioniert ist folgender:
Public Function Liste_Sortieren(Liste As ListBox)
Dim i As Long
Dim x As Long
Dim TMP As String
Dim ARR() As String
Dim bAdd As Boolean
Dim nCount As Long
' alle Einträge in einen String speichern
For i = 0 To Liste.listCount - 1
TMP = TMP & Liste.List(i) & "¦¦"
Next i
If Len(TMP) > 0 Then TMP = Left$(TMP, Len(TMP) - 2)
' String splitten
ARR() = Split(TMP, "¦¦")
With Liste
' Liste löschen
.Clear
' macht das Ganze noch etwas schneller
.Visible = False
' alle Einträge des Arrays durchlaufen und
' sortiert in die ListBox schreiben
nCount = UBound(ARR)
For i = 0 To nCount
bAdd = True
For x = 0 To .listCount - 1
If .List(x) > ARR(i) Then
.AddItem ARR(i), x
bAdd = False: Exit For
End If
Next x
If bAdd Then .AddItem ARR(i)
Next i
' Listendarstellung wieder einschalten
.Visible = True
End With
End Function
Kann mir da wer weiterhelfen?
Gruß,
Dorgos