Code
Private Sub ListBoxSortieren(lb As MSForms.ListBox, Optional Aufsteigend As Boolean = True, Optional Sortierspalte As Long = 0)
'Variablen dimensionieren
Dim ZeileAußen As Long
Dim ZeileInnen As Long
Dim temp As Variant
Dim Spalte As Long
With lb
'Äußere Schleife über Elemente der ListBox
For ZeileAußen = 0 To .ListCount - 2
'Innere Schleife über Elemente der ListBox
For ZeileInnen = 0 To .ListCount - 2
'Aufsteigend oder absteigend?
If Aufsteigend = True Then
'Wörter vergleichen aufsteigend
If LCase(.List(ZeileInnen, Sortierspalte)) > LCase(.List(ZeileInnen + 1, Sortierspalte)) Then
'Schleife über alle Spalten
For Spalte = 0 To .ColumnCount - 1
'Elemente tauschen
temp = .List(ZeileInnen + 1, Spalte)
.List(ZeileInnen + 1, Spalte) = .List(ZeileInnen, Spalte)
.List(ZeileInnen, Spalte) = temp
Next Spalte
End If
Else
'Wörter vergleichen absteigend
If LCase(.List(ZeileInnen, Sortierspalte)) < LCase(.List(ZeileInnen + 1, Sortierspalte)) Then
'Schleife über alle Spalten
For Spalte = 0 To .ColumnCount - 1
'Elemente tauschen
temp = .List(ZeileInnen + 1, Spalte)
.List(ZeileInnen + 1, Spalte) = .List(ZeileInnen, Spalte)
.List(ZeileInnen, Spalte) = temp
Next Spalte
End If
End If
Next ZeileInnen
Next ZeileAußen
End With
'Bereitgestellt von VBATrainer: www.vbatrainer.de
End Sub