Tri à bulle dans une lisbox

harzer Messages postés 46 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 18 avril 2007 - 9 sept. 2004 à 20:35
harzer Messages postés 46 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 18 avril 2007 - 10 sept. 2004 à 18:26
Bonjour à tous.
Je vous contact parce que j'ai un petit problème en vb avec une listbox.
le problème est le suivant:
J'ai une liste multi-séléction dans laquelle j'ai plusieurs lignes.
ce que je souhaite faire, c'est après avoir sélectionné une partie de cette liste, faire un tri à bulle dans un ordre décroissant sur une valeur se trouvant à la 53 position, ce tri doit se faire seulement sur la partie sélectionnée sans rien changer dans le reste de la liste.
Toutefois, je tiens à vous montrer un exemple de ce que cette liste contient :
A Mr XXXXXXXX ROGER 21 23 00 13 13 13 07 00 98 CT6
le tri de la liste doit être fait sur la valeur occupant la 53 position (dans ce cas précis c'est la valeur 98) , c'est pourquoi je dois travailler avec le test suivant : if Val(Mid$(List1.List(i%), 53, 2)) ....
Merci d'avance de votre aide.
Amicalement.

3 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
9 sept. 2004 à 22:43
Salut, ça sent la prise de tête ton histoire, utilises plutôt une listview. ainsi, quand tu remplis ta liste, tu réserve une colonne (visible ou nom où tu colles la valeur de ton mid$..... et tu peux utiliser la méthode sort. Exemple :

Dans projet/composants : Microsoft Windows Control 6.0 et le code suivant là où tu remplis ta listbox,

  ListView1.View = lvwReport ' affichage détails
  ListView1.LabelEdit = lvwManual ' pour empecher les modifs ds la 1ere colonne
  
  ' Nom des colonnes
  ListView1.ColumnHeaders.Add , , "cle", 0 'la colonne pour le tri
  ListView1.ColumnHeaders.Add , , "TonChamp", ListView1.Width
  
  ' Remplissage de la listview
  'dans ta boucle de remplissage
  Me.ListView1.ListItems.Add , , ton mid$
  Me.ListView1.ListItems(i + 1).ListSubItems.Add , , tavaleur

  
  ListView1.SortKey = 0
  ListView1.Sorted = True



Bonne prog

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
9 sept. 2004 à 22:44
Heu, oserais-je préciser que ListView1 est un controle listview qui doit remplacer ta listbox ?

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
0
harzer Messages postés 46 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 18 avril 2007
10 sept. 2004 à 18:26
Merci à toi CanisLupus pour toutes ses précisions.
Cordiale poignées de mains.
Amicalement.
0
Rejoignez-nous