Voilà une petite demande d’aide pour un fichier de tri, ou de double tri.
En fonction du fichier en pièce jointe, j’aimerai trier un premier tableau par rapport à un index du plus grand au plus petit puis trier ce même tableau par rapport au Prix du plus petit au plus grand.
Si quelqu’un pouvais m’aider soit en utilisant des formules excel soit par une macro.
J’arrive a tri le tableau1 pour avoir le tableau 2 mais je cale sur le tableau 3
Bonjour,
Merci pour la réponse mais le tri par prix me remélange les index.
je n’arrive pas a trier du plus petit au plus grand les prix des index 39.3, puis les prix de index 28.30 ainsi de suite.
Je ne sais pas si il y a des formules excel pour faire cela ou une macro pour le faire en automatique.
« je n’arrive pas a trier du plus petit au plus grand les prix des index 39.3, puis les prix de index 28.30 ainsi de suite. »
Chaque index si d’apparence sont des nombres à 2 chiffres après la virgule sont pour tous des données à 7 chiffres après la virgule et donc tous différents exemple le numéro 4 a pour index en affichage 20,90 en donnée réelle 20,8999996 le numéro 11 a pour index en affichage lui aussi 20,90 en donnée réelle 20,8999989
C’est 2 index bien qu’en apparence il soient identiques pour Excel ils sont différents car seule la donnée réelle est considérée par lui
Il donc impossible d’ordonner pour chacun leur prix étant considéré différent
J’ai dans le fichier ci-joint dans une colonne supplémentaire pour chaque index en données réelles à 7 chiffres décimales réduit par formule en 2 décimales et donc de rendre la donnée réelle identique à son affichage
Ainsi en triant par index d’ordonner leurs prix pour chacun d’eux du plus petit au plus grand
J’ai réalisé cette manipulation pour le Tableau1 avec la colonne supplémentaire « D » dans laquelle est intégrée une formule pour arrondir à 2 décimales chaque index
Puis un tri de la colonne « A » à la colonne « D » est réalisé ainsi :
Première colonne de tri la colonne ajoutée avec la formule colonne « D » pour regrouper les index
Deuxième colonne de tri pour ordonner les prix du plus petit au plus grand de chaque index colonne « C »
Ainsi tous les index sont regroupés avec dans l’ordre croissant leur prix
Merci pour ton retour
Passer par un bouton nécessite un programmation en VBA sur celui-ci
Si tu programmes tel que je te l’ai indiqué tes 3 tableau x le tri attendu sera une bonne fois pour toute en place sans autres intervention celui-ci s’adapera à l’évolution des données seule celle du nombre de lignes nécessitera une adaptation de cette programmation initiale
Pour l’éviter mets dans celle-ci un nombre suffisant de ligne capable de répondre aux besoins à venir même vides le tri sera opérationnel et ainsi d’éviter de reparametrer l’environnement du tri
A toi de voir quelle option choisir : VBA avec bouton ou une initialisation adapté pour répondre aux besoins de l’instant et du futur
si la plage est un tableau structuré, on n’a pas de soucis concernant le nombre de ligne ou colonnes, autrement on sait faire beaucoup avec « currentregion » (nécessite une colonne et une ligne libre autour des données).
Tableau 2 avec currentregion, Tableau 3 comme tableau structuré.
Sub Tri_2()
With Sheets("Feuil1").Range("F1").CurrentRegion
.Sort .Range("B1"), xlDescending, Header:=xlYes
End With
End Sub
Sub Tri_3()
With Sheets("Feuil1").Range("J1").ListObject.Range
.Sort .Range("B1"), xlDescending, , .Range("C1"), xlAscending, Header:=xlYes
End With
End Sub