XL 2013 Code VBA incompatible avec version Excel

Averell1976

XLDnaute Junior
Bonjour à toutes et à tous,

J'ai un code vba me permettant de faire un tri sur des données (tri aléatoire en fonction d'un roulement) qui fonctionne très bien sous excel 2016, mais qui me pointe une erreur d'exécution 438 (propriété ou méthode non gérée par cet objet) sous excel 2013 (version qui va utiliser ce code...)
Il faut donc que je le réécrive, mais je ne sais pas comment.

Voici le code en question:
VB:
Sub tri_alea()
'
' tri_alea Macro
'

'
    Sheets("DATA").Select
      
    Range("B2:B8").Select
    Selection.Copy
    Range("E2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.SmallScroll Down:=0
    Range("D2:E8").Select
    Application.CutCopyMode = False
    ActiveWorkbook.Worksheets("DATA").Sort.SortFields.Clear
   [COLOR=rgb(250, 197, 28)] ActiveWorkbook.Worksheets("DATA").Sort.SortFields.Add2 Key:=Range _
        ("E2:E8"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal[/COLOR]
    With ActiveWorkbook.Worksheets("DATA").Sort
        .SetRange Range("D2:E8")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
      
    Sheets("Affectations Saisie PY").Select
    Range("B2:E2").Select
    MsgBox ("Planning généré avec succès")
      
    End With
 Exit Sub
    
End Sub

Le débugage pointe sur le code en jaune....
je vous met le fichier en PJ; le code s'exécute lorsqu'on clique sur le bouton "REGENERER"

Merci pour votre aide
 

Pièces jointes

  • Copie de ROULEMENT EQUIPE PY.xlsm
    86.8 KB · Affichages: 1
Solution
Bonjour Averell1976, le forum

Je n'ai ni 2013, ni 2016 pour tester mais j'ai déjà rencontré ce problème de compatibilité entre 365 et 2010 où la méthode .Sort.SortFields.Add2 n'existait pas encore.
Remplacez .Sort.SortFields.Add2 par .Sort.SortFields.Add et cela devrait fonctionner sous 2013 en restant compatible 2016.

Cordialement, @+

Ps : inutile d'essayer de mettre dans une couleur spécifique une partie de code VB dans une fenêtre de code, cela n'apporte que de la confusion.
Bonjour Averell1976, le forum

Je n'ai ni 2013, ni 2016 pour tester mais j'ai déjà rencontré ce problème de compatibilité entre 365 et 2010 où la méthode .Sort.SortFields.Add2 n'existait pas encore.
Remplacez .Sort.SortFields.Add2 par .Sort.SortFields.Add et cela devrait fonctionner sous 2013 en restant compatible 2016.

Cordialement, @+

Ps : inutile d'essayer de mettre dans une couleur spécifique une partie de code VB dans une fenêtre de code, cela n'apporte que de la confusion.
 

Averell1976

XLDnaute Junior
Bonjour Averell1976, le forum

Je n'ai ni 2013, ni 2016 pour tester mais j'ai déjà rencontré ce problème de compatibilité entre 365 et 2010 où la méthode .Sort.SortFields.Add2 n'existait pas encore.
Remplacez .Sort.SortFields.Add2 par .Sort.SortFields.Add et cela devrait fonctionner sous 2013 en restant compatible 2016.

Cordialement, @+

Ps : inutile d'essayer de mettre dans une couleur spécifique une partie de code VB dans une fenêtre de code, cela n'apporte que de la confusion.
super, merci à toi pour ton aide efficace
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
748

Statistiques des forums

Discussions
315 093
Messages
2 116 122
Membres
112 666
dernier inscrit
Coco0505