[VBA] Tri tableau multidimensionnel

Résolu/Fermé
zoubinho Messages postés 15 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 27 février 2009 - 21 janv. 2009 à 15:35
zoubinho Messages postés 15 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 27 février 2009 - 27 janv. 2009 à 14:09
Bonjour,

Sous Excel VBA, je cherche à trier mon tableau multidimensionnel dont la 1ere colonne est un String et la 2nde, un Integer. Voilà ce que ça donne visuellement :

toto 10
titi 5
tutu 20
tata 15

Et je cherche à obtenir :
titi 5
toto 10
tata 15
tutu 20

Mon tableau est défini de la sorte : Public Tab(4,2) as String
J'ai trouvé des exemples de tri pour des tableaux à une dimension ou même pour des Array, mais pas pour mon cas...

Quelqu'un aurait-il une idée ?

Merci d'avance

3 réponses

Foreverson Messages postés 231 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 22 juin 2014 27
21 janv. 2009 à 15:45
Si tu veux faire une macro :

Outils->macro->nouvelle macro

Tu lui donnes un nom.

Ensuite, tu sélectionnes la plage de données (de la cellule toto à la cellule 15), puis "données", "trier", tu mets la colonne des nombres comme clé de tri, puis tu cliques sur croissant.

Ensuite, Outils->macro-> arrêter l'enregistrement.

Je pense que ça marche !

Sinon, sans la macro, tu fais juste le passage en italique.
3
zoubinho Messages postés 15 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 27 février 2009 6
21 janv. 2009 à 17:09
Bonjour Foreverson,

Merci de ta réponse.
Après record de la macro, voilà ce que j'ai obtenu :
    Range("A3:B6").Select
    Selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

Cependant, je l'ai peut-être mal exprimé, mais je voudrais effectuer mon tri sur les données de mon tableaux et non les données des cellules. Ici, c'est typiquement un traitement sur les cellules.

A la rigueur, si Excel acceptait ce genre de code :
    tab().Select
    Selection.Sort Key1:=tab(x,2), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

alors je serais aux anges !! Mais ce n'est pas le cas.
Je suis donc à la recherche d'un petit bout de code I guess, qui n'est présent sur aucune page de la toile.. (ok 5h de recherche ne correspond pas à toute la toile, mais j'espère que vous comprenez l'exaspération au terme des 5 heures...)
0