Trier avec une liste perso

Bonjour à tous,

J'ai fais quelques recherches sur le sujet du tri avec une liste perso en code VBA. Le soucis c'est que toutes les réponses que j'ai vues sont les mêmes : en gros faire une macro avec l'éditeur et copier coller du code un peu barbare...

Je souhaite trier l'ensemble de cellules C7:D9 selon la colonne D en gardant bien sur les valeurs liées par rapport aux lignes. Ce tri s'effectue dans l'ordre suivant : A faire, fait, en attente.

Exemple de tableau à trier :

att En Attente

fa Fait

afa A Faire

donne une fois trié :

afa A Faire

fa Fait

att En Attente

Ici le code de base donné par les macro excel :

Range("C7:D9").Select

ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("D7:D9"), _

SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _

"A Faire,Fait,En Attente", DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("Feuil1").Sort

.SetRange Range("C7:D9")

.Header = xlGuess

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

Ce code fonctionne, mais il me semble qu'il peut être dégraissé...

J'ai donc essayé de réduire petit à petit et j'arrive à cela qui fonctionne également :

ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("D7:D9"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="A Faire,Fait,En Attente", DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("Feuil1").Sort

.SetRange Range("C7:D9")

.Apply

End With

Mais mon souci actuel c'est que j'ai fais cela en tâtonnant sans comprendre la logique du code...

Question 1 : dans ce que j'ai enlevé y a t il des données importantes?

Question 2 : qui peut m'expliquer pas à pas comment fonctionne ce code? Plus explicitement pourquoi je dois toujours faire appel à la feuille en cours et donner tous ces "détails" à excel.

Merci d'avance pour vos réponses et bonne soirée.

Petit up, si quelqu'un a une réponse?

Personne n'a d'idée?

Rechercher des sujets similaires à "trier liste perso"