VBA - Tri personalisé sur 1ère lettre + série de chiffres

Bonjour,

je souhaite crée une macro afin qu'elle trie la liste ci-dessous dans l'ordre souhaité, c'est à dire M puis J puis S avec l'odre des numéros, par exemple :

M2300

M2301

M2302

J1405

J1406

J1407

S3520

S3521

S3522

Sur le tri de base ça fonctionne, mais le tri personnalisé non :

Voici mon code :

With ActiveWorkbook.Worksheets(1).AutoFilter.Sort
.SortFields.Clear
.SortFields.Add Key:=Range("C2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal, CustomOrder:="M,J,S"
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Auriez-vous des pistes pour m'aider svp ?

Merci !

Bonjour,

Pour un tri par liste personnalisée il faut que toutes les clés figurent dans cette liste, ce qui risque de faire beaucoup et non exhaustif en cas d'ajouts.

Ajoute une colonne avec =GAUCHE(A2;1) et trie dessus après le tri par clé.

Si toutes tes clés sont de la forme 1 lettre 4 chiffres ça suffira.

Sinon il faut ajouter encore une autre colonne avec =--STXT(A2;2;15) pour trier par lettre et partie numérique.

eric

Bonjour

merci de ta réponse, oui c'est une option à laquelle j'avais pensé mais j'imaginais un code me le permettant.

On ne peut pas faire un tri avec deux critères sur la même colonne ?

Dont le premier critère est la première lettre (M, puis J, puis S) et le deuxième critère les 4 chiffres.

Car en effet c'est toujours écris de la même façon, une lettre et 4 chiffres.

Merci de ton aide

Je suis passé par l'ajout de colonne finalement, intégré dans ma macro, que je supprime après le filtre effectué.

Merci pour aide !

Rechercher des sujets similaires à "vba tri personalise 1ere lettre serie chiffres"