[VBA/Excel] macro ordre alphabétique

Résolu/Fermé
styvea Messages postés 34 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 12 juillet 2011 - Modifié par styvea le 8/07/2010 à 11:20
styvea Messages postés 34 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 12 juillet 2011 - 8 juil. 2010 à 11:27
Bonjour,

j'aimerais savoir si il existe une macro sur Excel permettant de classer par ordre alphabétique un tableau en fonction d'une colonne particulière svp.

J'ai essayé en utilisant "enregistrer une macro" et en le faisant à la souris, mais je ne vois pas quoi changer pour obtenir ce que je veux..

Voici le code obtenu :

Sub ordre_alpha()     
'     
' ordre_alpha Macro     
'     

'     
    Range("A1:K18").Select     
    ActiveWorkbook.Worksheets("Mars").Sort.SortFields.Clear     
    ActiveWorkbook.Worksheets("Mars").Sort.SortFields.Add Key:=Range("B2:B18"), _     
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal     
    With ActiveWorkbook.Worksheets("Mars").Sort     
        .SetRange Range("A1:K18")     
        .Header = xlYes     
        .MatchCase = False     
        .Orientation = xlTopToBottom     
        .SortMethod = xlPinYin     
        .Apply     
    End With     
End Sub



Mars étant le nom de la feuille actuelle, mais vu que la feuille peut changer à tout moment il me faudrait un truc du style activesheets. Et la taille du tableau étant elle même variable il faudrait un Range qui sélectionne tout le tableau de la page.

J'ai essayé ce code :

Sub Macro3() 
' 
' Macro3 Macro 
' 
' 
    nbc = UsedRange.Columns.Count 
    nbl = UsedRange.Rows.Count 
    UsedRange.Columns.Count.Select 
    ActiveWorkbook.ActiveSheet.Sort.sortfiels.Clear 
    ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("B2:nbl"), _
         SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets.ActiveSheet.Sort 
        .SetRange Range("nbl:nbc") 
        .Header = xlYes 
        .MatchCase = False 
        .Orientation = xlTopToBottom 
        .SortMethod = xlPinYin 
        .Apply 
    End With 

End Sub 

Mais il ne marche pas et je n'arrive pas vraiment à voir où se trouve l'erreur...


Merci à ceux qui pourront m'aider :)
Cordialement

StyveA

1 réponse

g Messages postés 1262 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 15 mai 2017 572
8 juil. 2010 à 11:18
Bonjour,

Sub TriAlpha()
Range("A1:Z1000").Sort Key1:=Range("B1"), Order1:=xlAscending
End Sub

Cette macro trie par ordre alpha sur la colonne B dans la plage A1:Z1000 (peut bien sur être adapté).

Bonne journée.
17
styvea Messages postés 34 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 12 juillet 2011 2
8 juil. 2010 à 11:27
Oo ça fait court par rapport à ce que j'ai sorti lol...

Merci beaucoup, j'essaye ça de suite !
(ça le fera je suppose sur la feuille en cours?
0