Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ComboBox-Inhalte alphabetisch sortieren

Forumthread: ComboBox-Inhalte alphabetisch sortieren

ComboBox-Inhalte alphabetisch sortieren
25.10.2004 11:46:43
Claus
Moin Leute,
Ich lese aus einer Tabelle Namen in eine ComboBox ein. Leider werden diese in der ComboBox so angezeigt, wie sie in der Reihenfolge der Tabelle (unsortiert) vorkommen.
Wie kann ich eine ComboBox alphabetisch sortieren? Apfelmann soll vor Zaunkönig in der ComboBox stehen....

Private Sub UserForm_Initialize()
VacationForm.Height = 184
Dim col2 As New Collection
Dim ycolumn As Integer
ycolumn = 4
strZelleText = Cells(3, ycolumn).Text
On Error Resume Next
Do Until (strZelleText = "")
strZelleText = VBA.Strings.Replace(strZelleText, vbLf, REPLACE_STR)
ComboBox2.AddItem strZelleText
ycolumn = ycolumn + 1
strZelleText = Cells(3, ycolumn).Text
Loop
ComboBox2.ListIndex = 0
End Sub

Vielen Dank, Claus
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox-Inhalte alphabetisch sortieren
P@ulchen
Hi Claus,
tu so:


Private Sub UserForm_Initialize()
VacationForm.Height = 184
Dim col2 As New Collection
Dim ycolumn As Integer
ycolumn = 4
strZelleText = Cells(3, ycolumn).Text
On Error Resume Next
Do Until (strZelleText = "")
   strZelleText = VBA.Strings.Replace(strZelleText, vbLf, REPLACE_STR)
   ComboBox2.AddItem strZelleText
   ycolumn = ycolumn + 1
   strZelleText = Cells(3, ycolumn).Text
Loop
ComboBox2.ListIndex = 0
SortierenCombobox
End Sub
Sub SortierenCombobox()
Dim i_Erster As Integer
Dim i_Letzter As Integer
Dim i_Aktuell As Integer
Dim i_Nächster As Integer
Dim s_buffer As String
With UserForm1.ComboBox2
    If .ListCount = 0 Then Exit Sub
    i_Erster = 0
    i_Letzter = .ListCount - 1
    For i_Aktuell = i_Erster To i_Letzter
        For i_Nächster = i_Aktuell + 1 To i_Letzter
            If .List(i_Aktuell) > .List(i_Nächster) Then
                s_buffer = .List(i_Nächster)
                .List(i_Nächster) = .List(i_Aktuell)
                .List(i_Aktuell) = s_buffer
            End If
        Next i_Nächster
    Next i_Aktuell
End With
End Sub


Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

ComboBox-Inhalte alphabetisch sortieren


Schritt-für-Schritt-Anleitung

Um ein Excel Dropdown alphabetisch zu sortieren, kannst du den folgenden VBA-Code verwenden. Dieser Code liest die Inhalte aus einer Tabelle und fügt sie in einer ComboBox hinzu.

  1. Öffne den VBA-Editor mit ALT + F11.
  2. Füge einen neuen UserForm hinzu.
  3. Klicke mit der rechten Maustaste auf den UserForm und wähle "Code anzeigen".
  4. Füge den folgenden Code ein:
Private Sub UserForm_Initialize()
    VacationForm.Height = 184
    Dim col2 As New Collection
    Dim ycolumn As Integer
    ycolumn = 4
    Dim strZelleText As String
    strZelleText = Cells(3, ycolumn).Text
    On Error Resume Next
    Do Until (strZelleText = "")
        strZelleText = VBA.Strings.Replace(strZelleText, vbLf, REPLACE_STR)
        ComboBox2.AddItem strZelleText
        ycolumn = ycolumn + 1
        strZelleText = Cells(3, ycolumn).Text
    Loop
    ComboBox2.ListIndex = 0
    SortierenCombobox
End Sub

Sub SortierenCombobox()
    Dim i_Erster As Integer
    Dim i_Letzter As Integer
    Dim i_Aktuell As Integer
    Dim i_Nächster As Integer
    Dim s_buffer As String
    With UserForm1.ComboBox2
        If .ListCount = 0 Then Exit Sub
        i_Erster = 0
        i_Letzter = .ListCount - 1
        For i_Aktuell = i_Erster To i_Letzter
            For i_Nächster = i_Aktuell + 1 To i_Letzter
                If .List(i_Aktuell) > .List(i_Nächster) Then
                    s_buffer = .List(i_Nächster)
                    .List(i_Nächster) = .List(i_Aktuell)
                    .List(i_Aktuell) = s_buffer
                End If
            Next i_Nächster
        Next i_Aktuell
    End With
End Sub
  1. Schließe den Editor und führe den UserForm aus.

Mit diesem Code wird die ComboBox nach dem Hinzufügen der Elemente alphanumerisch sortiert.


Häufige Fehler und Lösungen

  • Fehler: ComboBox bleibt leer

    • Lösung: Stelle sicher, dass die Zellen, aus denen die Daten gelesen werden, tatsächlich Werte enthalten und dass du den richtigen Arbeitsblattnamen und die korrekten Zellreferenzen verwendest.
  • Fehler: Sortierung funktioniert nicht

    • Lösung: Überprüfe, ob die SortierenCombobox-Subroutine nach dem Hinzufügen der Elemente aufgerufen wird.

Alternative Methoden

Eine andere Methode, um ein Excel Dropdown zu sortieren, ist die Verwendung einer Hilfsspalte in deinem Arbeitsblatt. Du kannst die Daten in dieser Hilfsspalte mit =SORTIEREN(A1:A10) (ab Excel 365) sortieren und dann die ComboBox auf diese Hilfsspalte verweisen lassen.


Praktische Beispiele

Wenn du eine ComboBox namens ComboBox2 hast, die Namen von einer Liste in Spalte D (beginnend ab Zeile 3) anzeigt, kannst du den obigen Code direkt verwenden. Achte darauf, dass die Daten, die du sortieren möchtest, in der angegebenen Spalte vorhanden sind.


Tipps für Profis

  • Nutze die Excel-Funktion SORTIEREN für eine einfache und schnelle Lösung, falls du Excel 365 verwendest. So kannst du die Dropdown-Inhalte dynamisch sortieren, ohne VBA verwenden zu müssen.
  • Experimentiere mit der List-Eigenschaft, um die Sortierung nach spezifischen Kriterien anzupassen.

FAQ: Häufige Fragen

1. Wie kann ich die Sortierung auch für numerische Werte durchführen?
Du kannst die If-Bedingung in der SortierenCombobox-Subroutine anpassen, um eine numerische Vergleichsoperation zu verwenden.

2. Funktioniert dieser Code auch in Excel 2016?
Ja, der VBA-Code funktioniert in den meisten Excel-Versionen, einschließlich Excel 2016. Beachte jedoch, dass die SORTIEREN-Funktion nur in Excel 365 verfügbar ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige