VBA instruction de tri : incompatibilité Excel 2016-2013

Bonjour à tous,

Je m'adresse à vous pour savoir si vous avez déjà rencontré ce problème :

Dans une macro contenant plusieurs instructions diverses, j'ai une instruction de tri, classique, comme ci-dessous :

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

ActiveWorkbook.Worksheets("Commande").Sort.SortFields.Add2 Key:=Range( _

"R11:R2000"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _

xlSortNormal

With ActiveWorkbook.Worksheets("Commande").Sort

.SetRange Range("A11:R2000")

.Header = xlGuess

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

La macro fonctionne très bien sur mon Excel 2016 (et sur un autre PC avec Excel 2016), mais sur 2 autres PC équipés d'Excel 2013, la commande de tri n'est pas exécutée ! Il n'y a pas de messages d'erreur, la macro exécute les instructions avant et après ce code, mais ne fait pas le tri demandé.

Quelqu'un aurait-il une idée ?

Merci d'avance

Michael

Bonjour,

Tu peux utiliser l'enregistreur de macro sur le PC excel 2013 pour faire le même trie et ensuite aller voir la différence de code

utilisé.

Bonjour,

Bonne idée

Je vais la tester

Michael

Re-bonjour,

Ton idée était excellente !

En effet en enregistrant le bout de macro sur Excel 2013, le code :

ActiveWorkbook.Worksheets("Commande").Sort.SortFields.Add2 Key:=Range( _

"A11:A2000")

devient :

ActiveWorkbook.Worksheets("Commande").Sort.SortFields.Add Key:=Range( _

"A11:A2000")

et ça marche sur les 2 versions d'Excel.

Donc, si ça peut aider d'autres personnes, plutôt utiliser Add que Add2 !

Merci beaucoup !

Michael

Rechercher des sujets similaires à "vba instruction tri incompatibilite 2016 2013"