Procédure de tri - VBA Excel 2003-2010

Cette procédure est basée sur l'ancienne méthode SORT de l'objet Range, limitée à 3 niveaux de tri pour garder une portabilité avec la version 2003.

Les arguments
La procédure SortTable (version 5,2) à six arguments dont un seul est obligatoire.
SheetOrRange - (Object) pouvant être une feuille ou un Range.
Si l'objet est worksheet, on considère que la table commence à la cellule "A1" de cette feuille
[SortList] - (String) liste des n° de colonnes à trier séparés par un point virgule
Le n° de colonne correspond au n° de colonne dans la table
Si le n° est négatif le tri est descendant. Exemple SortList:="2;4;-6"
Si le n° contient une décimale et que la ligne ou la colonne à trier contient du texte convertible en nombres (exemple 13.2 4.2 ou '100 / '70050), le tri se fera comme un numérique (option xlSortTextAsNumbers de l'argument DataOptionX de la méthode Sort)
[Header] - (Boolean) Défini si la table à une en-tête. (xlYes pas défaut).
[Extend] - (Boolean). Indique si la référence à la table doit être étendue (Cas de colonne unique contigüe). True par défaut
[Orientation] - (Byte) Tri par colonne [default] (xlSortColumns/xlTopToBottom/1) ou par ligne (xlSortRows/xlLeftToRight/2)
[CustomList] - (String). Permet de faire un tri personnalisé sur la première clé. La liste doit être séparée par des points virgules. Exemple : "Très bon;Bon;Moyen;Pas bon"
Avatar de Philippe Tulliez
Rédacteur https://www.developpez.com
Le 20/03/2016 à 18:52
Bonjour,
Comme expliqué dans ma réponse en MP, sans connaître les lignes de codes utilisées pour appeler cette procédure ainsi que la valeur de chaque paramètre utilisé il est difficile d'apporter une réponse.
Est-ce qu'un tri effectué manuellement avec la même liste de données fonctionne ?
Même si je ne prétends pas que ma procédure est exempte d'un 'bug', c'est tout de même la première fois que je reçois un retour de problème suite à son utilisation après plus de 415 téléchargements de la nouvelle version.

ps : Un peu de patience. Je premier message en MP a été envoyé le hier le 19/3 à 10h9 et un second aujourd'hui déjà à 12h30 et ensuite un message public ce soir à 18h.
Ne pas oublier que nous sommes des bénévoles, que nous avons une vie privée et que c'est le week-end. Nous ne sommes pas scotché sur DVP 24h/24
Avatar de bricko
Membre du Club https://www.developpez.com
Le 23/08/2013 à 21:44
merci beaucoup je m'y mets pour décoder un peu ça me semble assez hard mais bon j'ai le we
Avatar de khezzani
Candidat au Club https://www.developpez.com
Le 28/03/2014 à 18:34
merci beaucoup
Avatar de belhoucine dine
Candidat au Club https://www.developpez.com
Le 03/11/2014 à 12:51
merci beaucoup
Avatar de moussa.assoumani
Futur Membre du Club https://www.developpez.com
Le 12/08/2017 à 10:01
Juste que j'ai beaucoup apprécié le travail. Et je tiens à vous remercier énormément! Merci à vous tous!
Avatar de abdelhamid43
Candidat au Club https://www.developpez.com
Le 17/04/2018 à 14:07
merci beaucoup
Avatar de unparia
Expert éminent sénior https://www.developpez.com
Le 24/12/2018 à 18:29
Bonjour
Tout est dans la convention acceptée de tri :
exemple (là au Québec)
http://bdl.oqlf.gouv.qc.ca/bdl/gabar...dl.asp?id=4929
Avatar de unparia
Expert éminent sénior https://www.developpez.com
Le 25/12/2018 à 9:09
Je crois que le plus simple est peut-être l'utilisation de quelques "clichés"
- cliché 1 : le classement alphabétique existe depuis bien avant l'apparition de systèmes informatiques et des tables de valeurs ASCII. Il est, lui, purement conventionnel et la méthode adoptée peut différer d'un pays à l'autre, notamment en ce qui concerne les mots composés. Le lien québécois que j'ai mis plus haut expose des conventions distinctes.
- cliché 2 : le classement par valeurs ASCII est, lui, quelque peu arbitraire (l'attribution des valeurs est arbitraire, pour être plus précis) et est totalement figé
- cliché 3 : on comprendra que le classement alphabétique et le classement par valeurs ASCII sont alors des choses distinctes
-----cliché 3-1 : la lettre "à" (par exemple et entre autres) est en classement alphabétique (en France) "placée" quelque part entre la lettre "a" et la lettre "b". Alors que le caractère "à" est, lui, d'une valeur ASCII très nettement supérieure à celle du caractère "z"
---- cliché 3-2 : certaines lettres (y compris de langues utilisant des caractères latins) peuvent exister dans une langue et être absents de l'autre. La "position" choisie pour ces lettres dans un classement alphabétique n'est pas forcément la même ici et là.

Conclusion : Office a fait le choix d'une convention. Celle-ci n'est pas forcément la même partout.
On peut au mieux regretter que n'ait pas été offerte une option permettant au développeur de "coller" à telle ou telle autre convention de tri alphabétique.
Joyeux Noël à tous
Avatar de unparia
Expert éminent sénior https://www.developpez.com
Le 25/12/2018 à 11:25
Je comprends tes réactions, Philippe.
Regarde toutefois cet extrait du lien que j'ai mis plus haut :
- Principes généraux du classement alphabétique
...
....

3. Classement lettre par lettre : le trait d’union ne compte pas.
.....
Selon cette méthode-là :
CALIE/TESSIER
CALIE-HEUCLIN-176XFF
CALI-KRAWCZYK-PIRIOU-250268501365977
CALI-LEFAIT
CALIMERO
CALIN
CALI-SIORAK*-250268732150388
a été trié sur cette base-là
CALIE/TESSIER
CALIEHEUCLIN176XFF
CALIKRAWCZYKPIRIOU250268501365977
CALILEFAIT
CALIMERO
CALIN
CALISIORAK*250268732150388

Amitiés

EDIT : j'observe à ce propos que Larousse, entre autres, a également choisi de présenter son dictionnaire en observant cette règle-là en ce qui concerne le traitement des tirets éventuellement présents.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Responsables bénévoles de la rubrique Excel : Pierre Fauconnier - Arkham46 -

Partenaire : Hébergement Web