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 !
Bonjour, comment trier par ordre alphabétique toutes les lignes d'un tableau. Ci-joint un exemple pour essai, mon tableau comporte 500 lignes.
Merci d'avance pour votre aide
On va finir par converger ... 😉
En PJ un essai avec :
VB:
Sub Trier()Dim T, T0, L, C, C2
T0 = Timer
T = [A1].CurrentRegion
For L =2To UBound(T,1)For C =1To UBound(T,2)For C2 = C To UBound(T,2)If T(L, C)> T(L, C2)Then
Buffer = T(L, C): T(L, C)= T(L, C2): T(L, C2)= Buffer
EndIfNext C2
Next C
Next L
[G1].Resize(UBound(T,1), UBound(T,2))= T
[M1] =1000*(Timer - T0)EndSub
En M1 il y a le temps d'éxécution pour 500 lignes, sur mon PC ça prends autour de 35ms.
Salut Djidji, salut Sylvanu je joint le fichier avec le résultat escompté, mais j'ai plus de 500 lignes et la solution de Sylvanu va être trop longue. N'y a t'il pas une solution par macro?
... encore un petit effort et vous nous expliquez ce que vous attendez par "trier par ordre alphabétique toutes les lignes" car dans votre fichier je ne vois pas de tri alpha.
Quelle(s) règle(s) doit on suivre ?
Désolé, mais je ne détecte aucun tri alpha.
CBDAE n'est pas le tri alpha de DAECB. ( ce serait ABCDE )
En colonne pareil.
Au mieux que j'ai trouvé c'est par le N° de colonne cela ferait 45123 soit bien CBDAE mais ça ne marche pas pour toutes les lignes.
Alors question simple :
Qu'appelez vous "trier par ordre alphabétique toutes les lignes" ?
Autre point, sauf erreur de ma part vos deux PJ sont identiques.
On va finir par converger ... 😉
En PJ un essai avec :
VB:
Sub Trier()Dim T, T0, L, C, C2
T0 = Timer
T = [A1].CurrentRegion
For L =2To UBound(T,1)For C =1To UBound(T,2)For C2 = C To UBound(T,2)If T(L, C)> T(L, C2)Then
Buffer = T(L, C): T(L, C)= T(L, C2): T(L, C2)= Buffer
EndIfNext C2
Next C
Next L
[G1].Resize(UBound(T,1), UBound(T,2))= T
[M1] =1000*(Timer - T0)EndSub
En M1 il y a le temps d'éxécution pour 500 lignes, sur mon PC ça prends autour de 35ms.
Bravo Sylvanu, qu'est ce que j'aimerai savoir créer ces codes, tu dois te régaler. Je te dis à bientôt car je voudrai compléter ce thème. Mais là je dois partir, peut-être demain
Anoter cependant ( j'ai oublié de le préciser ) que le code tient compte de la casse. Le tri est dans l'ordre
0-9, A-Z, a-z, donc suppose que tout soit en majuscules ou minuscules.
Si la casse ne doit pas entrer en ligne de compte alors changez la ligne :
VB:
If T(L, C)> T(L, C2)Then
en
If LCase(T(L, C))> LCase(T(L, C2))Then
- 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