[VBA] Trier un tableau excel avec vba

tzehani Messages postés 11 Statut Membre -  
 titounette -
Bonjour à tous j'aimerai automatiser le tri par un code VBA et pas le faire manuellement

exemple : j'ai un tableau excel avec 3 colonnes et j'aimerai trier le tableau selon la colonne B tout en gardant les lignes
c'est à direpar exemple

rouge tomate légume
vert raisin fruit
noir araignée animal

devienne

noir araignée animal
vert raisin fruit
rouge tomate légume

Merci beaucoup de votres précieuses aides
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. Papou93 Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   59
     
    Bonjour tzehani,

    Voici une macro toute simple, à lancer après avoir sélectionné la zone à trier :

    Sub TriPerso()
    
        Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
    
    End Sub


    ou la même qui sélectionne une zone fixe :

    Sub TriPerso()
    
        Range("A1:C3").Select
        Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
    
    End Sub


    Astuce : il est très facile d'obtenir des actions aussi simples en lançant l'enregistreur de macros.

    Cordialement.
    9
    1. tzehani Messages postés 11 Statut Membre
       
      Merci beaucoup pour le conseil, je prendrai ta deuxieme proposition cepeandant j'an ai besoin de A1:ANi et c'est cette écriture que je n'arrive pas à coder, voici mon code :

      Sub TriPerso()

      Do While Range("A" & i) <> 0
      i = i + 1
      Loop

      Range("A1:AN & i").Select =====> Problème pour l'expression AN&i


      Selection.Sort Key1:=Range("E1"), Order1:=xlAscending, Header:=xlGuess, _
      OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
      DataOption1:=xlSortNormal
      End Sub


      Merci encore de ton attention
      0
      1. Sir_DEC Messages postés 143 Statut Membre 75 > tzehani Messages postés 11 Statut Membre
         
        Bonjour,

        Tu as fait une erreur de frappe : Range("A1:AN & i") => Range("A1:AN" & i) ou Range("A1:A" & i)
        0