items d'une liste automatiquement par ordre alphabétique

  • Initiateur de la discussion liline
  • Date de début
L

liline

Guest
J'ai en fait deux combobox, une listbox et un bouton.
lorsque je fais un choix dans le 1er combobox, le 2e se remplit différemment. lorsque j'appuie sur le bouton, je concatène la valeur sélectionnée dans le 1er combobox et celle du 2e et j'inscris le résultat dans la listbox.
Ce que je souhaiterais, c'est pouvoir ranger automatiquement les résultats par ordre décroissant dans la listbox.

ex : je choisis la valeur 2 dans le combobox1 et 7 dans le 2e : dans la listbox, j'obtiens: "2 * 7 = 14"
puis, je choisis les valeurs 6 et 3, ce qui me donne "6 * 3 = 18".
J'aimerais donc que cette chaine apparaisse avant la première et ainsi de suite pour les prochaines chaines.

j'ai essayé en utilisant Listindex et List(i), mais ca n'a pas marché.
Je pensais utliser "right" pour obtenir la fin de la chaine, mais je ne vois pas comment faire après.

Merci de tout coeur pour votre aide !

a bientot,

Liline
 
S

sousou

Guest
Voici une procédure qui trie une listebox par odre alphabétique ou numérique.

Pas sur que cela fonctionne très bien pour tes phrases, mais essaie et donne moi le résultat.

Tu insères la procédure dans un module, et tu l'appels
call trie(userform1.maliste) par exemple

'procédure de trie d'une listebox

Sub trie(liste)
n = liste.ListCount
ReDim matable(n)

For i = 0 To n - 1
'Si les valeur sont numériques
If IsNumeric(liste.List(i)) = True Then k1 = Val(liste.List(i))
'_________________

If k1 > maxi Then
matable(i) = k1
maxi = k1
Else
k = 0
While k1 > matable(k)
k = k + 1
Wend
'décallage
For z = i To k Step -1
matable(z + 1) = matable(z)
Next
matable(k) = k1
Application.StatusBar = i
End If
Next
liste.List() = matable

End Sub

liste.List() = matable

End Sub
 
S

sousou

Guest
Excuse!
Il manquait si alpha .......

'procédure de trie d'une listebox

Sub trie(liste)
n = liste.ListCount
ReDim matable(n)

For i = 0 To n - 1
'Si les valeur sont numériques
If IsNumeric(liste.List(i)) = True Then
k1 = Val(liste.List(i))
'__________Si alpha_______
Else
k1 = liste.List(i)
End If
If k1 > maxi Then
matable(i) = k1
maxi = k1
Else
k = 0
While k1 > matable(k)
k = k + 1
Wend
'décallage
For z = i To k Step -1
matable(z + 1) = matable(z)
Next
matable(k) = k1
Application.StatusBar = i
End If
Next
liste.List() = matable

End Sub
 

Discussions similaires

Réponses
9
Affichages
329
Réponses
9
Affichages
864
Réponses
18
Affichages
1 K

Statistiques des forums

Discussions
314 658
Messages
2 111 621
Membres
111 235
dernier inscrit
Morgane SANCHEZ