Tri automatique avec liste de tri personnalisée

Résolu
oli_jean9 Messages postés 4 Statut Membre -  
oli_jean9 Messages postés 4 Statut Membre -
Bonjour,

J'utilise Excel 2016 et je veux trier automatiquement un tableau selon une colonne qui contient différent "STATUT" en lien avec chaque lignes. J'ai déjà fait une liste de tri personnalisée qui me permet de trier ces "STATUT" selon l'ordre désiré, mais j'aimerais que ce tri s'effectue automatiquement lorsque j'ajoute de nouvelles lignes ou modifie un information. Je sais que je dois utiliser une macro VBA et j'ai trouvé des solutions pour classer en ordre croissant ou décroissant, mais je n'ai pas trouvé comment le faire avec une liste personnalisée. Si possible, j'aimerais peut-être même ajouter une second niveau de tri. Le premier tri serais donc ma liste personnalisée pour une colonne "X" et un second tri alphabétique sur une colonne "Y".

Merci de bien vouloir m'aider...

Olivier Jean

2 réponses

Gyrus Messages postés 3360 Statut Membre 526
 
Bonjour,

As-tu essayé d'utiliser l'enregistreur de macros pour obtenir le code correspondant à ton tri ?

A+
1
oli_jean9 Messages postés 4 Statut Membre
 
Je viens tout juste de l'essayer...je réussi à enregistrer et exécuter ma macro en allant dans l'onglet développeur/Macros et j'Exécute ma macro que j'ai préalablement enregistrée, mais je sais pas comment faire pour que cela se fasse dès que je change un info ou double clique une cellule...
0
Gyrus Messages postés 3360 Statut Membre 526 > oli_jean9 Messages postés 4 Statut Membre
 
il faudrait que tu montres ta macro.

A+
0
oli_jean9 Messages postés 4 Statut Membre
 
Sub TRI()
'
' TRI Macro
' Tri automatique
'

'
Range("B10:L26").Select
ActiveWorkbook.Worksheets("CÉDULE").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("CÉDULE").Sort.SortFields.Add Key:=Range("E10:E26") _
, SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
"NON-AUTORISÉ,AUTORISÉ,CHEMINS EN COURS,PRÊT POUR RÉCOLTE,RÉCOLTE EN COURS,FINI ATT. INVENTAIRES,FERMETURE EN COURS,FERMÉ" _
, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("CÉDULE").Sort.SortFields.Add Key:=Range("D10:D26") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("CÉDULE").Sort
.SetRange Range("B10:L26")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
0
oli_jean9 Messages postés 4 Statut Membre
 
Merci je viens de réussir!!
0