Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

probleme tri alpha num dans listbox (désolé

  • Initiateur de la discussion Initiateur de la discussion papapaul
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

papapaul

XLDnaute Impliqué
🙂 Bonjour le forum

J'ai un souci de tri dans une listbox.

Dans mon usine à gaz j'ai inséré un bouton qui si besoin est
fait le tri des items dans la listbox3.

Private Sub CommandButton2_Click()
With ListBox3
For I = 0 To .ListCount - 1
For j = 0 To .ListCount - 1
If .List(I) < .List(j) Then
temp = .List(I)
.List(I) = .List(j)
.List(j) = temp
End If
Next j
Next I
End With
End Sub

Cette liste est alimentée par un choix de colonnes ou il y a parfois
de l'alpha ou du numérique. Le code ci-dessus marche bien sauf quand
j'ai des items 1,2,111,222. Le tri fait 1,111,2,222 puis les alphas.
J'ai bien trouvé plein de post à ce sujet mais je suis pas doué 🙁
J'arrive pas à adapter pour faire 1,2,111,222 etc...

Merci d'avance. 🙂
 
Re : probleme tri alpha num dans listbox (désolé

Bonjour

En fait il faut bien comprendre que dans ta listbox tu n'as pas du numérique

Toutes tes données sont en string donc triées telles quelles

Alors il faudrait passer par un tableau intermediaire avant de remplir la listbox
 
Re : probleme tri alpha num dans listbox (désolé

bonjour papapaul

Salut Pascal

une idée A TESTER

Code:
Private Sub CommandButton2_Click()
With ListBox3
For I = 0 To .ListCount - 1
For j = 0 To .ListCount - 1
 
if isnumeric(.List(I)) then 
ListI=cdbl(.List(I))
else
ListI=.List(I)
end if
 
If isnumeric(.List(j)) then
ListJ=cdbl(.List(J)
else
ListJ=.List(j)
end if
 
 
If ListI < ListJ Then
temp = .List(I)
.List(I) = .List(j)
.List(j) = temp
End If
Next j
Next I
End With
End Sub
 
Re : probleme tri alpha num dans listbox (désolé

bonjour papapaul, pascal et pierrejean

rapide passage afin de vous saluer 🙂

et pour fermer les parenthèses de pierrejean 😛

ListJ=cdbl(.List(J))

salut

 
Re : probleme tri alpha num dans listbox (désolé

🙂 Merci Jacques, Pierrejean,
Ca ne fonctionne pas🙁
J'avais dans un autre projet insérer le code ci-dessous :
qui marche quand je sais que le numeric est tjs col 2 et 5
Select Case col
Case 2,5
If CDbl(.list(i))<CDbl(.Listj)) Then
temp = CDbl(.List(i))
.List(i) = CDbl(.List(j))
.List(j) = temp
End If
Case Else
Problème, dans mon exemple les colonnes choisies pour alimenter
la liste ne sont jamais à la même place.
Je joins une version simplifiée de mon usine, vous allez reconnaître.
Evidement j'ai 2 autres petits soucis.
1) J'ai mis une Msg pour avertir si pas de doublons dans 1 des colonnes
si il y en a dans les autres il faut quand même créer la feuille.
Des fois ca marche, des fois non, je comprends pas trop.😕
2) Je voudrais que quand l'utilisateur change de feuille en cliquant
sur l'onglet, la listbox des feuilles sélectionne le nom de cette feuille.
La aussi j'ai bien du mal (surement adapter le thisworkbook, mais..)

Précision : je fais ca pour le boulot avec excel97.
Vous pouvez tester en ouvrant mon truc et y coller une
feuille de votre choix, même beaucoup de colonnes et quelques
milliers de lignes (pas trop quand même sinon ca peut être un peu long)
ca fonctionne.

Je continue mon aventure.🙄
En attendant, bon appétit et merci à tous
 

Pièces jointes

Re : probleme tri alpha num dans listbox (désolé

😱 Milles excuses Pierrejean
En fait, comme d'hab, ca marche impec.
J'avais bien rectifié le ) comme le dit Hervé
mais une fois de plus j'ai été trop vite.
Je n'ai pas vu qu'il faut remplacé :

If .List(I) < .List(J) Then
par
If ListI < ListJ Then

Maintenant je vais m'attaquer au 2 soucis mis plus haut.
Surtout le 2 qui me chagrine beaucoup parceque je devrais
y arriver tout seul, et ben non😡 et puis le 1,
j'ai pas du mettre ou il faut ou mal écrit les codes des msg 😕

La tout de suite je suis à la maison, le dites pas à ma patronne
elle croit que je travaille plus pour gagner pareil, 😀
elle est contente mais c'est pas vrai.
En fait j'ai le virus XLD mais elle le sait pas.

Amitiés à tous.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
661
Réponses
15
Affichages
784
Réponses
4
Affichages
732
Réponses
8
Affichages
390
Réponses
5
Affichages
910
Réponses
8
Affichages
780
Réponses
3
Affichages
922
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…