[VBA] Trier un tableau excel avec vba

Fermé
tzehani Messages postés 11 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 31 octobre 2010 - 19 juil. 2007 à 09:20
 titounette - 7 juil. 2008 à 16:15
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

2 réponses

Papou93 Messages postés 146 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 5 juin 2012 59
19 juil. 2007 à 15:03
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
tzehani Messages postés 11 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 31 octobre 2010
23 juil. 2007 à 09:27
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
Sir_DEC Messages postés 143 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 12 mai 2012 75 > tzehani Messages postés 11 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 31 octobre 2010
23 juil. 2007 à 11:44
Bonjour,

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