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

Strings alphabethisch sortieren

Forumthread: Strings alphabethisch sortieren

Strings alphabethisch sortieren
20.10.2018 21:57:47
Manuel
Hallo zusammen
Ich habe in einer Tabelle mehrere Einträge, welche alle dem selben Schema folgen.
Fett formatierter Titel (als String), grau hinterlegt
Zusatzinformationen in den Zellen darunter
Leerzeile, dannach nächster Eintrag
Das Schema der einzelnen Einträge muss leider bestehen bleiben, was bedeutet, dass ich die Einträge nicht sortieren kann.
Soweit so gut. Nun möchte ich per Userform weitere Einträge hinzufügen können. Dies funktioniert mitlerweile auch, dass einzige was mich noch stört ist, dass ich die Einträge bisher nur unten an der Eintragsliste anfügen konnte. Ich möchte den neuen Eintrag aber so einfügen, dass die Liste alphabethisch sortiert bleibt. Das heisst, ich muss den Titel finden, der im Alphabeth vor meinem neuen Titel steht. Dazu bräuchte ich eine Funktion, welche überprüft, ob ein String im Alphabeth hinter einem anderen String steht und entsprechend True oder False ausgibt. Gibt es so etwas?
Freundliche Grüsse
Manuel Roth
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Strings alphabethisch sortieren
20.10.2018 22:19:53
onur
Ja, nennt sich grösser (oder kleiner bei vor).
If String1 > String2 Then

Anzeige
;
Anzeige

Infobox / Tutorial

Strings alphabetisch sortieren in Excel


Schritt-für-Schritt-Anleitung

Um eine alphabetische Sortierung von Strings in Excel durchzuführen, insbesondere wenn Du eine Userform verwendest, kannst Du folgende Schritte befolgen:

  1. Userform erstellen: Setze eine Userform auf, um neue Einträge hinzuzufügen.
  2. Textfeld für Titel: Füge ein Textfeld hinzu, in dem der Titel des neuen Eintrags eingegeben wird.
  3. Sortierfunktion implementieren: In der Schaltfläche zum Hinzufügen des neuen Eintrags, füge einen VBA-Code ein, der die alphabetische Position des neuen Titels bestimmt.

Hier ist ein Beispiel für den VBA-Code, den Du verwenden kannst:

Sub AddEntry()
    Dim newTitle As String
    newTitle = UserForm1.TextBox1.Value ' Titel aus dem Textfeld

    Dim lastRow As Long
    lastRow = Sheets("DeinBlatt").Cells(Rows.Count, 1).End(xlUp).Row ' Letzte Zeile finden

    Dim i As Long
    For i = 1 To lastRow
        If StrComp(newTitle, Sheets("DeinBlatt").Cells(i, 1).Value, vbTextCompare) < 0 Then
            Sheets("DeinBlatt").Cells(i, 1).EntireRow.Insert Shift:=xlDown
            Sheets("DeinBlatt").Cells(i, 1).Value = newTitle
            Exit Sub
        End If
    Next i

    ' Wenn der neue Titel am Ende hinzugefügt werden muss
    Sheets("DeinBlatt").Cells(lastRow + 1, 1).Value = newTitle
End Sub

Häufige Fehler und Lösungen

  • Fehler: Eintrag wird nicht korrekt eingefügt
    Lösung: Überprüfe, ob der Vergleichsoperator StrComp richtig verwendet wird. Achte darauf, dass Du vbTextCompare für einen fallunabhängigen Vergleich benutzt.

  • Fehler: Userform stürzt ab
    Lösung: Stelle sicher, dass alle Steuerelemente in der Userform korrekt benannt sind und keine leeren Felder übergeben werden.


Alternative Methoden

Wenn Du keine Userform verwenden möchtest, kannst Du auch die Sortierfunktion von Excel direkt nutzen. Hierzu:

  1. Wähle die gesamte Liste aus.
  2. Gehe zu Daten > Sortieren.
  3. Wähle die Spalte aus, die die Titel enthält, und sortiere aufsteigend.

Diese Methode ist einfach, erfordert jedoch manuelle Eingriffe, wenn Du immer neue Einträge einfügen möchtest.


Praktische Beispiele

Stell Dir vor, Du hast eine Liste mit den Titeln:

  • Apfel
  • Banane
  • Orange

Wenn Du "Birne" hinzufügen möchtest, wird der VBA-Code sicherstellen, dass "Birne" zwischen "Banane" und "Orange" eingefügt wird.


Tipps für Profis

  • Verwende Arrays: Wenn Du mit größeren Datenmengen arbeitest, kann es effizienter sein, die Einträge in ein Array zu laden, sie dort zu sortieren und anschließend wieder in die Tabelle zu übertragen.
  • VBA-Debugging: Nutze das Debugging in VBA, um sicherzustellen, dass Deine Logik korrekt ist und alle Bedingungen erfüllt werden.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Sortierung nicht beeinflusst wird?
Ändere die Formatierung Deiner Zellen nicht, um sicherzustellen, dass die Sortierung korrekt funktioniert.

2. Kann ich die Funktion auch für andere Datentypen verwenden?
Ja, die Funktion kann auch für Zahlen und Datumswerte angepasst werden, aber achte darauf, die Vergleichsoperatoren entsprechend anzupassen.

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