ListBox sortieren

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

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

Teile diesen Beitrag

Empfehlungen für dich

VBATrainer Excel VBA Coaching - Lagerverwaltung

Sichere dir jetzt meine kostenlose Lagerverwaltungs-Anwendung