Simplifier un code macro en VBA pour faire un tri d'une liste personnalisée
Bonjour à tous,
voici mon problème, je souhaiterai faire un code VBA pour faire un trie personnalisé dans un de mes fichiers. Ce fichier comporte des listes de noms dans des colonnes, chaque colonne représente un jour du mois. Chaque début de mois je dois trier les noms selon ma liste personnalisée. Je travaillais avant avec excel 2003, ma macro fonctionnait à merveille, maintenant je suis sous excel 2013 et là... c'est la cata...
voici le début de la macro que j'ai enregistré avec une version excel 2007, n'étant pas au boulot, mais je pense que c'est le même principe que 2013 à voir comme ça. Je n'ai fait l'enregistrement que sur deux jours, je souhaite savoir s'il n'y a pas plus simple avec un bout de code VBA
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| Range("B3:C9").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("B3:C9"), _
SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
"cheval,écureuil,singe,éléphant,autruche,pingouin" _
, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("B3:C9")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("D3:E9").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("D3:E9"), _
SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
"cheval,écureuil,singe,éléphant,autruche,pingouin" _
, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("D3:E9")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("E3").Select |
N'y a-t-il pas une autre solution que cette répétition de la liste personnalisé dans le code ?
Le trie se fait sur deux colonnes pour chaque jour pour info...
Merci, pour plus de renseignements je suis à votre disposition.
Bonne journée à tous.