Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
968to972
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
968to972
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Listbox sortieren

Listbox sortieren
23.04.2008 11:40:29
chris
Hallo VBA Experten,
ich habe eine frage.Wie kann ich eine 3 Spaltige Listbox so sortieren das Sortiert wird nach der ersten Spalte. Und dieanderen daten sich entsprechend mit an eine andere Position verschieben.
Vielen Dank gruß Chris

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox sortieren
23.04.2008 12:06:15
Rudi
Hallo,
das einfachste: Schreibe den Inhalt der LB in eine Tabelle, sortiere diese und schreibe wieder zurück.
Ansonsten guckst du bei Online-Excel nach Quicksort spezial.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Listbox sortieren
23.04.2008 12:10:27
chris
Danke. Muss ich mal schauen

AW: Listbox sortieren
23.04.2008 12:11:04
Schnee
Hallo Chris,
also ich bin mit folgendem Code glücklich geworden:

Sub SortBox(cltBox, 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


Beste Grüße,
Schnee

Anzeige
AW: Listbox sortieren (rudi)
23.04.2008 12:16:00
chris
danke damit komme ich nicht klar....
Rudi.
Wie bekomme ich die gesamten daten der Listbox am schnellsten in eine Tabelle kopieret ?

AW: Listbox sortieren (rudi)
23.04.2008 12:21:20
chris
Lösung gefunden:
Range("A1:C10000") = Me.selectet_numbers_lb.List
Danke noch einmal

AW: Listbox sortieren (rudi)
23.04.2008 12:22:48
Rudi
Hallo,
Sheets("Temp").Range("A1").Resize(ListBox1.ListCount, ListBox1.ColumnCount) = ListBox1.List
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Listbox sortieren (rudi)
23.04.2008 12:29:00
chris
Danke Rudi,
jetzt odch noch einmal offen.
Wie lese ich die Daten wieder ein ?
habe es so versucht geht nicht ?
Me.selectet_numbers_lb.List = Range("A1:C10")
Danke noch einmal

Anzeige
AW: Listbox sortieren (rudi)
23.04.2008 12:42:00
Rudi
Hallo,
dafür muss man, warum auch immer, den Umweg über ein Array machen.
arrList=Range("A1:C10")
Me.selectet_numbers_lb.List =arrList
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Listbox sortieren (rudi)
23.04.2008 13:01:23
chris
Ahh super,
Rudi vielen dank und schönen Tag !!!!!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige