[résolu] defaut compatibilité Excel 2007 vers 2003

  • Initiateur de la discussion Initiateur de la discussion Geely
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Geely

XLDnaute Occasionnel
Bonjour le Forum

j'ai une petite application qui fonctionne sous Excel 2007, mais sous 2003 il y a une erreur de compilation Variable
non définie.
' Trier
ActiveWorkbook.Worksheets("importer").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("importer").Sort.SortFields.Add Key:=Range( _
"T5:T489"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("importer").Sort
.SetRange Range("A4:BB489")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Comment modifier ce code pour que le tri se fasse également avec une version Excel 2003

Geely
 
Dernière édition:
Re : defaut compatibilité Excel 2007 vers 2003

Bonjour Geely,

Pense à utiliser l'enregistreur de macro et tu trouveras la solution
-> Outils -> Macros -> Nouvelle macro
Ensuite tu effectues les actions nécessaire à ce que tu souhaites
-> Outils -> Macros -> Arrêter l'enregistrement

Tu vas ensuite dans ton projet VBA et tu auras le code 😉

A+
 
Re : defaut compatibilité Excel 2007 vers 2003

Bonjour, salut Bruno,
Sur Excel 2003 ton code ne peut effectivement fonctionner car la propriété SortFields n'existe que depuis la version 2007.
Tu dois plutôt utiliser la méthode Range.Sort.

Tiré de l'aide d'Excel:
Range.Méthode Sort
Trie une plage de valeurs.
Syntaxe

expression.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)

expression Variable représentant un objet Range.

Paramètres

Nom Obligatoire/Facultatif Type de données Description
Key1 Facultatif Variante Désigne le premier champ du tri, soit sous forme de chaîne de nom de plage ou sous forme d'objet Range ; détermine les valeurs à trier.
Order1 Facultatif XlSortOrder Détermine l'ordre de tri pour les valeurs spécifiées dans Key1.
Key2 Facultatif Variante Second champ de tri ; inutilisable pour le tri d'un tableau croisé dynamique.
Type Facultatif Variante Indique les éléments à trier.
Order2 Facultatif XlSortOrder Détermine l'ordre de tri pour les valeurs spécifiées dans Key2.
Key3 Facultatif Variante Troisième champ de tri ; inutilisable pour le tri d'un tableau croisé dynamique.
Order3 Facultatif XlSortOrder Détermine l'ordre de tri pour les valeurs spécifiées dans Key3.
Header Facultatif XlYesNoGuess Indique si la première ligne contient l'information d'en-tête. xlNo est la valeur par défaut ; spécifiez xlGuess si vous souhaitez qu'Excel tente de déterminer l'en-tête.
OrderCustom Facultatif Variante Spécifie un décalage d'entier (base 1) dans la liste d'ordres de tri personnalisés.
MatchCase Facultatif Variante Définissez sur True pour exécuter un tri qui respecte à la casse, False pour exécuter un tri qui ne respecte pas la casse ; inutilisable avec des tableaux croisés dynamiques tables.
Orientation Facultatif XlSortOrientation Spécifie si le tri doit être effectué en ordre ascendant ou descendant.
SortMethod Facultatif XlSortMethod Spécifie la méthode de tri.
DataOption1 Facultatif XlSortDataOption Indique comment trier le texte de la plage spécifiée dans Key1 ; ne s'applique pas au tri des tableaux croisés dynamiques.
DataOption2 Facultatif XlSortDataOption Indique comment trier le texte de la plage spécifiée dans Key2 ; ne s'applique pas au tri des tableaux croisés dynamiques.
DataOption3 Facultatif XlSortDataOption Indique comment trier le texte de la plage spécifiée dans Key3 ; ne s'applique pas au tri des tableaux croisés dynamiques.

Valeur renvoyée
Variante
A+
 
Re : defaut compatibilité Excel 2007 vers 2003

Je testerai cela :

Rows("4:489).select
Selection.Sort Key1:Range("T5"), Order1=X1Ascending, Header:=X1Guess, _OrderCustom:=1, MatchCase:=False,
_DataOption1:=X1SortNormal

sans être sure du résultat.

Geely
 
Re : defaut compatibilité Excel 2007 vers 2003

Re,

Pitié Geely, n'utilises pas de "Select" sauf si obligatoire
Si ta ligne d'entête de ton tableau est la ligne 4
Code:
Range("A4:BB489).Sort Key1:=Range("T4"), Order1:=XlAscending, Header:=XlGuess, OrderCustom:=1, MatchCase:=False


Tu n'est pas obligé d'utiliser

Code:
DataOption1:=X1SortNormal

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
17
Affichages
1 K
Réponses
4
Affichages
180
Réponses
6
Affichages
1 K
Réponses
11
Affichages
783
Réponses
1
Affichages
1 K
Réponses
1
Affichages
821
Retour