Hunde geben einem so viel zurück – beispielsweise Blumenzwiebeln, die man letzte Woche eingepflanzt hat.

Ich erstelle einen Dialog und erstelle eine Schaltfläche, die es ermöglicht, die Werte zu sortieren:

Ich verwende eine Code, den ich im Internet gefunden habe:

Private Sub cmdSort_Click()
     Dim i As Integer
     Dim listMatrix As Object, varDaten As Variant
     Set listMatrix = CreateObject("System.Collections.ArrayList")

For i = 0 To Me.lstAuswahl.ListCount - 1
    listMatrix.Add Me.lstAuswahl.List(i)
Next i

listMatrix.Sort
Me.lstAuswahl.Clear ' -- Auswahlliste leeren

For Each varDaten In listMatrix
    Me.lstAuswahl.AddItem varDaten
Next varDaten

If Me.lstAuswahl.ListCount > 0 Then
    Me.lstAuswahl.ListIndex = 0
End If

Set listMatrix = Nothing
End Sub

Klappt wunderbar – allerdings:

ArrayList ist ein Objekt von .NET-Framework 3.5. Ist dieses nicht auf einem Rechner installiert, funktionieren die Befehle der Klasse auch nicht:

Also – raus damit – und die „klassische“ Variante:

Private Sub cmdSort_Click()
Dim intLast As Integer, intNext As Integer
Dim strTemp As String
With Me.lstAuswahl
For intLast = 0 To .ListCount – 1
For intNext = intLast + 1 To .ListCount – 1
If .List(intLast) > .List(intNext) Then
strTemp = .List(intLast)
.List(intLast) = .List(intNext)
.List(intNext) = strTemp
End If
Next intNext
Next intLast
End With
End Sub