Listbox alphabetisch sortieren
- UserForm erstellen
- ListBox befüllen
- ListBox alphabetisch sortieren mit dem BubbleSort Verfahren
- ListBox mit mehreren Spalten sortieren
- ListBox aufsteigend und absteigend sortieren
- ListBox Sortierspalte festlegen
- Makro in einer UserForm über Button ausführen
Code
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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