Trier une listbox

A

Arsene

Guest
Re bonjour tout le monde,

Etant en passe de devenir un roi du Userform( ^^ ), j'aimerai paufiner mon travail, et savoir comment on peut trier les valeurs d'une listbox.

Par exemple une listbox qui se remplit de valeurs numériques sélectionnées par l'utilisateur au sein d'une combobox ( par exemple une liste d'années ).

Si mon utilisateur valide 1999, puis 2004, puis 2000, ma listbox ressemblera à :
1999
2004
2000

or je voudrais qu'elle se transforme en :
1999
2000
2004

Voilà, si quelqu'un sait comment trier une listbox, son savoir me serait d'une aide précieuse.

Merci d'avance.
 
J

jacques de ryes

Guest
Bonsoir Arsene et les amis du forum

Ci-dessous un petit bout de code qui crée une liste sans doublon et la trie.

Sub LISTE_UNIQUE_TRIEE()
Dim AllCells As range, Cell As range
Dim un As New Collection
Dim I As Integer, j As Integer
Dim ech1, ech2, Item

Set AllCells = range("A1:A9000")------------->par exemple

On Error Resume Next
For Each Cell In AllCells
un.Add Cell.Value, CStr(Cell.Value)
Next Cell

On Error GoTo 0

For I = 1 To un.Count - 1
For j = I + 1 To un.Count
If un(I) > un(j) Then
ech1 = un(I)
ech2 = un(j)
un.Add ech1, before:=j
un.Add ech2, before:=I
un.Remove I + 1
un.Remove j + 1
End If
Next j
Next I
For Each Item In un
UserForm1.ListBox1.AddItem Item
Next Item

UserForm1.Show

End Sub

J'espère que celà t'aidera à résoudre ton pb(et puis que celà rajoutera un joyau à ta couronne!!!!)

Bien amicalement
jacques de ryes
 
A

Arsene

Guest
Merci pour le tuyau!
Ta réponse me semble bien compliqué à vrai dire, et je n'ai pas encore testé, donc je ne peu me prononcer sur la validité de ta réponse. ;-)
Je précise que ma liste n'a pas d'existence physique dans aucune feuille de mon classeur, car cette liste se situe dans un UserForm et prends les valeurs sélectionnées par l'utilisateur( valeurs ayant une présence physique dans le classeur, et se retrouvant dans une combobox de mon UserForm ).
Or ta réponse me semble s'appliquer à une liste qui se retrouve sur une feuille excel( enfin si je me trompe dit le moi, car je suis pas ce qu'on appeler un "pro du VBA" :p )

Merci quand même, je vais explorer cette voie là, en éspérant qu'une réponse plus simple existe. Sinon tant pis.

Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
313 064
Messages
2 094 945
Membres
106 133
dernier inscrit
Thierry R