Tri de données par vba

  • Initiateur de la discussion Initiateur de la discussion math
  • 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 !

math

XLDnaute Nouveau
Bonjour tout le monde

Je suis en train de réaliser une macro qui doit me permettre de trier des données en fonction des priorités que donnent l'utilisateur. Je m'explique, mon tableau comporte 26 colonnes et l'utilisateur doit pouvoir choisir quelles colonnes sont prioritaires sur les autres (tri personnalisé), J'ai donc inséré un tableau dans lequel l'utilisateur ordonne les en têtes de colonnes et je reprend ensuite cela par vba. Jusque là tout va bien. Le problème se pose lorsque j'intègre la possibilité d'effectuer un tri ascendant ou descendant.

ActiveWorkbook.Worksheets("synthèse").Sort.SortFields.Add Key:=Range("&crit10&"), SortOn:=xlSortOnValues, "&crit11&", DataOption:=xlSortNormal

VBA me renvoie une erreur de compilation "attendu: paramètre nommé"

Si quelqu'un a une idée qui pourrait me faire avancer...
 
Re : Tri de données par vba

Salut math et le forum
N'ayant que la version 2003, je ne connais pas cette syntaxe. Mais ...
Code:
 ActiveWorkbook.Worksheets("synthèse").Sort.SortFields.Add Key:=Range("&crit10&"), SortOn:=xlSortOnValues, "&crit11&", DataOption:=xlSortNormal
Key:=Range("&crit10&") : paramètre nommé Key a la valeur de la cellule nommée "&crit10&"
DataOption:=xlSortNormal : le paramètre nommé DataOption a la valeur tri normal
"&crit11&" : je ne sais pas ce que ça veut dire, c'est une valeur, mais où la mettre ? on ne sait pas à quel paramètre l'affecter.

De plus ma méconnaissance des nouvelles versions et du fichier ne me permet pas de comprendre pourquoi les critères commencent et finissent par le symbole "&".

Pour dépanner un code, il faut le code en entier, une idée des données, et ce qu'il est supposé faire.
A+
 
Re : Tri de données par vba

Salut Math 🙂,
Pas trop suivi d'où sortent tes "&crit10&", mais les intructions 2007/2010 (valables il me semble en 2003) pour l'ordre du classement sont
Code:
Order:=xlAscending
et
Code:
Order:=xlDescending
d'où mon incompréhension de la question 😕...
Salut Gorfaël, bienvenue au club 🙄...
Bonne soirée 😎
 
Re : Tri de données par vba

Bonjour Math,

Je ne comprends pas non plus les signes "&".
Je fais la supposition que le &crit11& fait référence à une cellule où l'utilisateur choisi le tri ascendant ou non.

Premièrement, je remarque que dans ton code il manque l'argument Order:=

Aussi, je ne suis pas certain que l'on peut passer une variable à cet argument, je suggère donc de passer avec une condition "SI" sur le critère &crit11&

Code:
Sub Tri()

if &crit11& = 1 then    '1 = tri ascendant
ActiveWorkbook.Worksheet("synthèse").Sort.SortField.Add Key:=Range("&crit10"), SortOn:=xlSortOnValues, DataOption:=xlSortNormal, Order:=xlAscending
elseif &crit11& = 0 then '0 = tri descendant
ActiveWorkbook.Worksheet("synthèse").Sort.SortField.Add Key:=Range("&crit10"), SortOn:=xlSortOnValues, DataOption:=xlSortNormal, Order:=xlDescending
End If

End Sub

En espérant que ça aide un peu...
 
- 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

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
284
Réponses
6
Affichages
1 K
Réponses
1
Affichages
1 K
Réponses
5
Affichages
1 K
Retour