[VBA] Tri tableau multidimensionnel

Résolu
zoubinho Messages postés 15 Statut Membre -  
zoubinho Messages postés 15 Statut Membre -
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
Configuration: Windows XP
Excel 2003

3 réponses

  1. Foreverson Messages postés 244 Statut Membre 27
     
    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
    1. zoubinho Messages postés 15 Statut Membre 6
       
      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