XL 2010 Tri colonne suivant liste personnalisée

cp4

XLDnaute Barbatruc
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
Repose en paix
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 Barbatruc
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 Barbatruc
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
9
Affichages
797

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T