Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

trier colonne en vba

6 réponses
Avatar
Emcy
Bonjour,

je trie une selection en utilisant la fonction vba Sort
=> le probleme est que je ne peux mettre que trois colonnes pour le trie
alors que j'en ai besoins de 6

exemple qui marche
Range(Cells(1, 1), Cells(50, 7)).Select
Cells(1, 1).Activate
Selection.Sort Key1:=Cells(1, 7), Order1:=xlAscending, _
Key2:=Cells(1, 5), Order2:=xlAscending, _
Key3:=Cells(1,2), Order3:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:=
_
xlSortNormal

exemple qui marche pas :
Range(Cells(1, 1), Cells(50, 7)).Select
Cells(1, 1).Activate
Selection.Sort Key1:=Cells(1, 7), Order1:=xlAscending, _
Key2:=Cells(1, 5), Order2:=xlAscending, _
Key3:=Cells(1,2), Order3:=xlAscending, _
Key4:=Cells(1, 3), Order4:=xlAscending, _
Key5:=Cells(1, 6), Order5:=xlAscending, _
Key6:=Cells(1, 4), Order6:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:=
_
xlSortNormal

6 réponses

Avatar
JB
Bonjour,

A ma connaissance, il ne peut y avoir que 3 critères
Il faut procéder en 2 fois, en commençcant par le + bas niveau

Cordialement JB
Avatar
Emcy
"Il faut procéder en 2 fois, en commençcant par le + bas niveau"
=> je ne comprend pas trop

si je vais cela :
Range(Cells(1, 1), Cells(50, 7)).Select
Cells(1, 1).Activate

Selection.Sort _
Key1:Îlls(1, 7), Order1:=xlAscending, _
Key2:Îlls(1, 5), Order2:=xlAscending, _
Key3:Îlls(1,2), Order3:=xlAscending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, _
DataOption3:= xlSortNormal

Selection.Sort _
Key1:Îlls(1, 3), Order1:=xlAscending, _
Key2:Îlls(1, 6), Order2:=xlAscending, _
Key3:Îlls(1, 4), Order3:=xlAscending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, _
DataOption3:= xlSortNormal

=> ça ne va pas marcher, non ?



"JB" a écrit dans le message de news:

Bonjour,

A ma connaissance, il ne peut y avoir que 3 critères
Il faut procéder en 2 fois, en commençcant par le + bas niveau

Cordialement JB
Avatar
JB
Obtenu en enreg automatique:

Pays Service Qualif Nom Prenom Salaire
Espagne Compta Q1 Dupont Jean 1003
Espagne Compta Q1 Dupont Jean 1004
Espagne Compta Q4 Dupont Jean 1000
Espagne Compta Q5 Dupont Jean 1000
Espagne Compta Q6 Dupont Jean 1000
Espagne Compta Q7 Dupont Jean 1000
Espagne Compta Q8 Dupont Jean 1001
Espagne Compta Q9 Dupont Jean 1002
France Compta Q1 Dupont Alain 1000
France Compta Q1 Dupont Jean 800
France Compta Q1 Dupont Jean 1000
France Compta Q1 Martin Daniel 1000
France Compta Q1 Martin Jean 1000
France Compta Q2 Dupont Jean 1000
France Compta Q3 Dupont Jean 1000
France Edudes Q2 Dupont Jean 1000
France Edudes Q2 Dupont Jean 1000
France Edudes Q2 Dupont Jean 1000
France Edudes Q2 Dupont Jean 1200
France Edudes Q2 Dupont Jean 1300
Grèce Compta Q1 Dupont Jean 1005



Sub tri()
Range("A1:F100").Sort Key1:=Range("D2"), Order1:=xlAscending,
Key2:=Range( _
"E2"), Order2:=xlAscending, Key3:=Range("F2"),
Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:= _
xlTopToBottom, DataOption1:=xlSortNormal,
DataOption2:=xlSortNormal, _
DataOption3:=xlSortNormal
Range("A1:F100").Sort Key1:=Range("A2"), Order1:=xlAscending,
Key2:=Range( _
"B2"), Order2:=xlAscending, Key3:=Range("C2"),
Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:= _
xlTopToBottom, DataOption1:=xlSortNormal,
DataOption2:=xlSortNormal, _
DataOption3:=xlSortNormal
End Sub


JB
Avatar
Emcy
si j'ai bien compris

si je veux
trie avec 1 puis 2 puis 3 puis 4 puis 5 puis 6

il faut faire
trie avec 4 puis 5 puis 6
trie avec 1 puis 2 puis 3

c'est ça ?


"JB" a écrit dans le message de news:

Obtenu en enreg automatique:

Pays Service Qualif Nom Prenom Salaire
Espagne Compta Q1 Dupont Jean 1003
Espagne Compta Q1 Dupont Jean 1004
Espagne Compta Q4 Dupont Jean 1000
Espagne Compta Q5 Dupont Jean 1000
Espagne Compta Q6 Dupont Jean 1000
Espagne Compta Q7 Dupont Jean 1000
Espagne Compta Q8 Dupont Jean 1001
Espagne Compta Q9 Dupont Jean 1002
France Compta Q1 Dupont Alain 1000
France Compta Q1 Dupont Jean 800
France Compta Q1 Dupont Jean 1000
France Compta Q1 Martin Daniel 1000
France Compta Q1 Martin Jean 1000
France Compta Q2 Dupont Jean 1000
France Compta Q3 Dupont Jean 1000
France Edudes Q2 Dupont Jean 1000
France Edudes Q2 Dupont Jean 1000
France Edudes Q2 Dupont Jean 1000
France Edudes Q2 Dupont Jean 1200
France Edudes Q2 Dupont Jean 1300
Grèce Compta Q1 Dupont Jean 1005



Sub tri()
Range("A1:F100").Sort Key1:=Range("D2"), Order1:=xlAscending,
Key2:=Range( _
"E2"), Order2:=xlAscending, Key3:=Range("F2"),
Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:= _
xlTopToBottom, DataOption1:=xlSortNormal,
DataOption2:=xlSortNormal, _
DataOption3:=xlSortNormal
Range("A1:F100").Sort Key1:=Range("A2"), Order1:=xlAscending,
Key2:=Range( _
"B2"), Order2:=xlAscending, Key3:=Range("C2"),
Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:= _
xlTopToBottom, DataOption1:=xlSortNormal,
DataOption2:=xlSortNormal, _
DataOption3:=xlSortNormal
End Sub


JB
Avatar
JB
C'est ça

http://cjoint.com/?bfppucobG6

JB
Avatar
Emcy
merci

"JB" a écrit dans le message de news:

C'est ça

http://cjoint.com/?bfppucobG6

JB