XL 2010 Tri colonne suivant liste personnalisée

cp4

XLDnaute Accro
Bonjour,

Auriez-vous une astuce pour trier un tableau par rapport à la 1ère colonne qui contient des mois en lettre (du texte)?
Si j'utilise la commande trier (sous excel ou en vba), le tri s'effectue en alphanumérique (aout, avril,decembre, fevrier, janvier, juillet, juin, mai, mars, novembre, octobre, septembre).
Or, je souhaite un tri dans l'ordre des mois (janvier, fevrier, mars, avril, mai, juin juillet, aout, septembre, octobre, novembre, décembre).

Merci par avance.
 

Hasco

XLDnaute Barbatruc
Bonjour,

Données, trier dans Ordre, choisir liste personnalisée (Il me semble que ça existait sous 2010) à vérifer.
Créer ou choisir la liste idoine.

1632897612563.png

Cordialement
 

cp4

XLDnaute Accro
Bonjour à tous


oui c'est vieux comme Hérode Excel
Bonjour Chris;),

En effet, c'est vieux comme tu dis. Cependant, tu n'as pas dû remarquer que l'orthographe des mois 02 et 12, ne sont pas "orthodoxe" (avec e et non é). C'est pour cela que j'ai demandé une astuce, pour faire respecter l'ordre de tri (qui est en réalité un ordre de classement).

Merci beaucoup.

Bonne journée.

nb: je m'empresse de changer le titre de ma discussion.
 

cp4

XLDnaute Accro
Rebonjour,

J'ai enregistré une macro pour trier la colonne A suivant une liste personnalisée. Cependant, je n'arrive pas à adapter le code pour une plage variable. Lorsque les références de la plage sont fixes, la macro fonctionne convenablement.
VB:
Option Explicit

Sub Macro2()
Dim plg As Range, Sh As Worksheet

Set Sh = ThisWorkbook.ActiveSheet
Set plg = Sh.Range("A1").CurrentRegion

With Sh
    .Sort.SortFields.Clear
    .Sort.SortFields.Add Key:=Range( _
        "A2:A25"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
        "janvier,fevrier,mars,avril,mai,juin,juillet,août,septembre,octobre,novembre,decembre" _
        , DataOption:=xlSortNormal
    With .Sort
        .SetRange Range("A1:B25")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply  'plante ici si on remplace Range("A2:B25") par plg
    End With
End With
End Sub

En vous remerciant.

edit: message d'erreur
1632931988458.png
 
Dernière édition:

Discussions similaires

Réponses
11
Affichages
870
Réponses
9
Affichages
578

Statistiques des forums

Discussions
299 841
Messages
1 979 469
Membres
206 744
dernier inscrit
Nicolas258