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

VBA : Tri Shell dans variable tableau - multicritère.

  • Initiateur de la discussion Initiateur de la discussion dionys0s
  • 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 !

dionys0s

XLDnaute Impliqué
Bonjour le forum

Je souhaiterais obtenir de l'aide sur une fonction (ou sous sub) de tri de table définie à partir d'un range.

Dans mon fichier exemple, il s'agit de faire un tri décroissant sur la colonne 2 (numérique) puis un croissant sur la colonne 1 (texte). Je ne sais pas s'il est possible de créer une fonction totalement générique pour ça, mais je l'espère !

J'ai d'ores-et-déjà intégré la première partie (Tri Shell décroissant sur la dimension qui contient des numériques, mais qui est loin d'être optimisée), mais je lutte un maximum pour la suite.

Je ne veux pas me faire mâcher le boulot, mais avoir quelques pistes m'aiderait sûrement beaucoup, j'ai l'impression d'être en panne d'idées là... 😕

D'avance merci pour votre aide !

dionys0s
 

Pièces jointes

Re : VBA : Tri Shell dans variable tableau - multicritère.

J'ai refait des tests et la mienne tourne entre 0,64 et 0,66 et la tienne entre 0,81 et 0,87.
Mais si la précision n'est pas fiable c'est curieux que les valeurs du timer soient systématiquement comprises dans des fourchettes somme toute assez restreinte et distinctes à la fois non ?
 
Re : VBA : Tri Shell dans variable tableau - multicritère.

Je n'ai pas d'explication.
En excluant la dépose et en effectuant 10 fois l'opération pour compenser la cadence des Top du Timer Il s'avère que ta méthode est plus rapide. En plus tu la comprends. Abandonne complètement la mienne, n'en parlons plus.
Mais c'est peut être plus dû au fait qu'il vaux mieux trier sur un seul argument puis re-trier des tables plus petites, qu'au choix de la méthode de tri. J'y penserai de temps à autres pour voir s'il est possible selon cette conjecture d'accélérer la constitution de mes dictionnaires arborescents classés.
Mais j'en doute car la comparaison est abandonnée dès qu'un critère d'un niveau considéré est différent dans l'élément à comparer et celui en cours d'indexation. Par ailleurs le MoveMemory semble avoir une incidence plus grande encore que je ne croyais. Impossible, sans, de fixer un LimiteDicho acceptable. En dessous de 15 le Quick-Sort semble perdre son temps dans un tas de petits échanges inutile pour arriver à conclure le classement des petites partitions restantes. À 950, comme si on l'avait, la performance s'envole complètement.
 
Dernière édition:
Re : VBA : Tri Shell dans variable tableau - multicritère.

Effectivement je ne sais pas non plus si la différence se fait entre le Shell Sort et le Quick Sort.
Merci en tout cas pour ton aide et ton temps.

dionys0s
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…