Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
648to652
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
648to652
648to652
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Listbox sortieren
11.08.2005 13:24:37
Tobias
Hallo,
ich suche eine Möglichkeit die Zeilen, die in einer ListBox stehen zu sortieren, nachdem die Listbox gefüllt wurde. Da Sie aus mehreren Funktionen gefüllt wird, steht der Inhalt unsortiert drin, was aber sehr unübersichtlich ist. Die Sortierung soll nach der ersten Spalte lexikographisch erfolgen.
Mfg,
DerTobi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox sortieren
Klamsi
Vielleicht mach das hier was du willst.
Keine ahnugn was da genau passiert, aber die Funktion heit "SortListBox"... könnte also klappen ;-)
Probier mal aus, obs das ist was du dir vorstellst.
Grüße, Klamsi

Sub SortListBox()
Dim iLast As Integer, iNext As Integer
Dim iTmp
With ListBox1
For iLast = 0 To .ListCount - 1
For iNext = iLast + 1 To .ListCount - 1
If .List(iLast) > .List(iNext) Then
iTmp = .List(iLast)
.List(iLast) = .List(iNext)
.List(iNext) = iTmp
End If
Next iNext
Next iLast
End With
End Sub

AW: Listbox sortieren
11.08.2005 14:29:47
Heiko
Hallo Tobi,
hier mal ein Makro was ich mir dazu geschrieben habe. Hättest du auch im Archiv finden können.

Sub SortBox(cltBox As Control, intSpalten As Integer, _
intSpalte As Integer, Optional bytWie As Byte = 1)
' So DIS 28.04.05
' SortBox sortiert nicht gebundene List- und Comboboxen. Gebundene List- und Comboboxen
' (Angabe bei RowSource oder ListFillRange) können nicht sortiert werden.
' cltBox     : Name der Listbox die sortiert werden soll.
' intSpalten : Wieviele Spalten sollen mit sortiert werden. Sollte der Anzahl der Spalten
'              in der Listbox entsprechen
' intSpalte  : Nach welcher Spalte soll sortiert werden.
' bytWie     : 1 oder Nicht angegeben als Text
'            : 2 als Zahl, dann muß die ganze Spalte Zahlen enthalten.
'            : 3 als Datum, dann muß die ganze Spalte Datumwerte enthalten.
' Aufruf zum Beispiel so: ListBox1 mit 7 Spalten, Sortierung nach Spalte 1 Sortierordnung Text
' SortBox ListBox1, 7, 1  oder SortBox ListBox1, 7, 1, 1
' Oder so    : Listbox17 mit 2 Spalten, Sortierung nach Spalte 2 Sortierordnung Zahlen
' SortBox ListBox17, 2, 2, 2
Dim intLast As Integer, intNext As Integer, intCounter As Integer, intFehler As Integer
Dim strTmp As String, strFehlertext As String
Dim variLast As Variant, variNext As Variant
On Error GoTo Errorhandler
intFehler = 0
With cltBox
For intLast = 0 To .ListCount - 1
For intNext = intLast + 1 To .ListCount - 1
Select Case bytWie
Case 1
intFehler = 0
variLast = CStr(.List(intLast, intSpalte - 1))
variNext = CStr(.List(intNext, intSpalte - 1))
Case 2
intFehler = 1
variLast = CDbl(.List(intLast, intSpalte - 1))
variNext = CDbl(.List(intNext, intSpalte - 1))
Case 3
intFehler = 2
variLast = CDate(.List(intLast, intSpalte - 1))
variNext = CDate(.List(intNext, intSpalte - 1))
End Select
intFehler = 0
If variLast > variNext Then
For intCounter = 0 To intSpalten - 1
strTmp = CStr(.List(intLast, intCounter))
.List(intLast, intCounter) = CStr(.List(intNext, intCounter))
.List(intNext, intCounter) = strTmp
Next intCounter
End If
Next intNext
Next intLast
End With
Exit Sub
Errorhandler:
Select Case intFehler
Case 0
strFehlertext = "In der Listbox Sortierung ist ein Fehler aufgetreten !"
Case 1
strFehlertext = "Nicht alle Werte in der zu sortierenden Spalte sind Zahlen !"
Case 2
strFehlertext = "Nicht alle Werte in der zu sortierenden Spalte sind Datumswerte !"
Case Else
strFehlertext = "Unerwarteter Fehler !"
End Select
MsgBox strFehlertext & " Bitte informieren Sie 'So' ! " & vbCr & vbCr & _
"Fehler aufgetreten in " & cltBox.Name & " !" & vbCr & _
"Fehlernummer = " & Err.Number & vbCr & _
"Fehlerbeschreibung = " & Err.Description & vbCr & _
"Fehlersource = " & Err.Source, vbCritical, " Meldung vom Makro SortBox !"
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Listbox sortieren
12.08.2005 13:29:14
Tobias
Hallo Heiko, danke für die Hilfe
Allerdings bekomme ich die Fehlermeldung, "Laufzeitfehler 13: Typen unverträglich"
Mit der Frage zusammenhängend: was ist eine gebundene/ungebundene Listbox ?
Mfg,
DerTobi
AW: Listbox sortieren
12.08.2005 16:35:00
Heiko
Hallo
Gebundene Listen sind List und Comboboxen die über RowSource an einen Tabellenbereich gekoppelt sind. Die können nicht mit dem Makro sortiert werden, da müßte der Tabellenbereich sortiert werden.
Zu Typen unverträglich, was sagt den meine Fehlerauswertung.
Und als Tipp, wenn du nach Zahlen oder Datum sortieren lassen willst dann MÜSSEN alle Einträge Zahlen oder Datum sein !!!
Wenn das nicht Garantiert ist, lass doch nach Text sortieren das geht eigentlich immer.
Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Listbox sortieren
12.08.2005 21:13:53
Tobias
Hi Heiko,
die Combobox ist ungebunden und wird nur durch VBA gefüllt.
Ich lasse nach Spalte 1 sortieren und nur nach Text. (Ist auch nur Test drin)
Verstehe die Fehlermeldung nicht so ganz.
Was ist denn die Klasse Control? Die finde ich nirgends. Ist ListBox von dem Typ?
Ich hab Office XP. kann das ein Versionsproblem sein?
Mfg,
DerTobi
AW: Listbox sortieren
12.08.2005 21:23:00
Tobias
HI Heiko,
ich hab deinen Code dahingehend geändert, dass ich nur in dem Kopf des Sub beim ersten Argument das "As Control" gelöscht habe.
Jetzt funktionierts einwandfrei...
Mfg,
DerTobi
AW: Listbox sortieren
13.08.2005 18:17:55
Heiko
Hallo Tobi,
da schätze ich mal, das deine Listbox nicht in einem Userform sondern in einem Tabellenblatt ist. Dann ist sie nämlich nicht vom Typ Control, sondern vom Typ OLEObject. Durch die nun fehlende Deklaration (as Control weggelassen) wird der richtige Typ von VBA zugewiesen, damit gibts dann auch keine Fehlermeldung.
Aber nun läuft es ja, dann mal fröhliches sortieren.
Gruß Heiko
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge