Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
348to352
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
348to352
348to352
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sortieren im Kombobox

Sortieren im Kombobox
07.12.2003 09:52:24
Franz W.
Guten Morgen Fachleute,

ich hab noch nicht sehr viel Ahnung von Komboboxen, darum hab ich da eine Frage:

Ich habe eine Namensliste in einer Tabelle, die nach den verschiedensten Kriterien sortiert wird, nur nicht alphabetisch. Diese Namensliste lese ich jetzt in eine Kombobox ein (mittels "ListFillRange").

In der Kombobox sollten die Namen aber immer alphabetisch sortiert sein, egal wie die Namen in der Tabelle grade sortiert sind. Gibt es da eine Möglichkeit?

Vielen Dank schon mal für Eure HIlfe und beste Grüße
Franz

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

Betreff
Datum
Anwender
Anzeige
AW: Sortieren im Combobox
07.12.2003 11:02:41
Nepumuk
Hallo Franz,
das geht so nicht. Wenn du eine ComboBox / ListBox mit ListFillRange, oder in einem UserForm mittels RowSource füllst, ist der Inhalt der Box ein Abbild der Tabelle und daher nicht sortierbar. Da musst die Box entweder mit der AddItem - Methode oder über die List - Eigenschaft füllen.
Hier mal ein Beispiel, wie das sortieren in der ListBox eines UserForms funktioniert:

Option Explicit
Private Sub CommandButton1_Click()
Call sortieren(0, ListBox1.ListCount - 1)
End Sub
Private Sub sortieren(Untergrenze As Long, Obergrenze As Long)
Dim index1 As Long, index2 As Long, Element As String, Zwischenspeicher As String
index1 = Untergrenze
index2 = Obergrenze
Zwischenspeicher = Val(ListBox1.List(((Untergrenze + Obergrenze) / 2) \ 1))
Do
Do While Val(ListBox1.List(index1)) < Val(Zwischenspeicher)
index1 = index1 + 1
Loop
Do While Val(Zwischenspeicher) < Val(ListBox1.List(index2))
index2 = index2 - 1
Loop
If index1 <= index2 Then
Element = ListBox1.List(index1)
ListBox1.List(index1) = ListBox1.List(index2)
ListBox1.List(index2) = Element
index1 = index1 + 1
index2 = index2 - 1
End If
Loop Until index1 > index2
If Untergrenze < index2 Then Call sortieren(Untergrenze, index2)
If index1 < Obergrenze Then Call sortieren(index1, Obergrenze)
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 50 To 1 Step -1
ListBox1.AddItem i
Next
End Sub



Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk
Anzeige
AW: Sortieren im Combobox
07.12.2003 11:20:06
Franz W.
Hallo Nepumuk,

vielen Dank für Deine Hilfe, ich bin dran, das für mich umzusetzen, dauert aber ein bisschen. Habe die Idee, das so oder so ähnlich umzubauen und zusammenzusetzen, mal schauen ob ich's hinkriege, melde mich dann wieder:


Private Sub cmbSuchen_GotFocus()
Call sortieren(0, cmbSuchen.ListCount - 1)
Dim i As Integer
For i = 50 To 1 Step -1
ListBox1.AddItem i
Next
End Sub


Vielen Dank einstweilen und Grüße
Franz
Nachfrage
07.12.2003 12:12:13
Franz W.
Hallo Nepumuk,

hab grad noch an was anderem rum, drum erst jetzt meine Frage: seh ich dass richtig in Deinem Beispiel, dass die ListBox1 schon mit Werten gefüllt ist, die dann sortiert werden??? Und sollte ich das richtig kapiert haben, wie kommen in dem Beispiel die Werte in die Liste, wo ist die Quelle für die Werte?

Vielen DAnk schon mal und Grüße
Franz

P.S.: Ich bemüh mich ja redlich, aber ich bitte vielmals um Nachsicht, sollte das aus Deinem Code bereits hervorgehen :-()
Anzeige
AW: Nachfrage
07.12.2003 12:19:41
Nepumuk
Hallo Franz,
das geschieht im UserForm_Initialize - Ereignis.
Gruß
Nepumuk
Danke, mache weiter
07.12.2003 12:21:26
Franz W.
AW: Danke, mache weiter
07.12.2003 13:32:57
Franz W.
Hallo Nepumuk,

da ist ja ganz schön was drin für mich!!! Bin schwer am kämpfen. Komme aber glaub ich langsam weiter. Kämpfe jetzt grad allerdings mit folgendem Problem:

Ich habe die Listbox 4-spaltig gemacht und versuche einen 4-spaltigen Zellenbereich mit dem Namen "Suchliste" einzulesen wie folgt:


Private Sub UserForm_Initialize()
ListBox1.List = Range("Suchliste")
End Sub


Und jettz kommt die Fehlermeldung: " Eigenschaft List konnte nicht gesetzt werden. Index des Eigenschaftsfeldes ungültig. " Die Meldung kommt schon bei der Call-Anweisung in:


Private Sub CommandButton1_Click()
Call sortieren(0, UserForm1.ListBox1.ListCount - 1)
UserForm1.Show
End Sub


Kommentiere ich die Call-Zeile aus, dann kommt die Fehlermeldung eben bei der zweiten Zeile. Hat also anscheinend nichts mit dem Sortieren zu tun?!?

Was mache ich da falsch, bitte?

Grüße
Franz
Anzeige
Danke, ich hab's
07.12.2003 16:47:26
Franz W
Hallo Nepumuk,

ich hab's, es muss heißen:


Private Sub UserForm_Initialize()
ListBox1.List = Range("Suchliste").Value
End Sub


Was so ein kleiner Wörtchen ausmacht *ggg*

Grüße
Franz
AW: Sortieren im Kombobox
07.12.2003 11:27:47
Thomas Risi
Hallo Franz

Auf meiner Webseite (Beispiele) sind einige Möglichkeiten beschrieben.

Gruß
Thomas

Risi Thomas Softwareentwicklung

Anzeige
AW: Sortieren im Kombobox
07.12.2003 11:34:49
Franz W.
Hallo Thomas,

vielen Dank, werd ich anschauen...

Beste Grüße
Franz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige