Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
h2so4
Bonjour,
une manière de faire est de créer une colonne supplémentaire qui est la concaténation de toutes les clés (à conditions que le critère de tri soit le même pour toutes ces clés) et de faire le tri basé sur c ette colonne
il faut s'assurer que lors de la concaténation chaque clé a une longueu r fixe (mettre des zéros ou des blancs, le cas échéeant)
Bonjour,
une manière de faire est de créer une colonne supplémentaire qui est la concaténation de toutes les clés (à conditions que le critère de tri soit le même pour toutes ces clés) et de faire le tri basé sur c ette colonne
il faut s'assurer que lors de la concaténation chaque clé a une longueu r fixe (mettre des zéros ou des blancs, le cas échéeant)
une manière de faire est de créer une colonne supplémentaire qui est la concaténation de toutes les clés (à conditions que le critère de tri soit le même pour toutes ces clés) et de faire le tri basé sur c ette colonne
il faut s'assurer que lors de la concaténation chaque clé a une longueu r fixe (mettre des zéros ou des blancs, le cas échéeant)
MichD
Bonjour,
Tu as essayé quelque chose comme ceci :
Tu crées les conditions à partir du plus général vers le plus spécifique comme dans : Continent - Pays - Ville - Nom du client - Prénom du client ....
'---------------------------------------- Sub test()
Dim Sh As Worksheet Set Sh = Worksheets("Feuil1") 'Nom feuille à adapter
With Sh With .Range("A:Z") .Sort Key1:=Sh.Range("F1"), Order1:=xlAscending, _ Key2:=Sh.Range("U1"), Order2:=xlAscending, _ Key3:=Sh.Range("K1"), Order3:=xlAscending, Header:=xlNo
.Sort Key1:=Sh.Range("D1"), Order1:=xlDescending, Header:=xlNo End With End With End Sub '----------------------------------------
MichD ------------------------------------------ "HD" a écrit dans le message de groupe de discussion : jeejjv$lmv$
Bonjour,
Pour trier un tableau Excel en VBA j'utilise Sort... mais le souci est que cette fonction est limitée à 3 critères... lorsque je lance ma ligne vba:
Avez vous une autre fonction pour réaliser des tris de tableaux ?
Merci d'avance pour votre aide
Cordialement,
HD
Bonjour,
Tu as essayé quelque chose comme ceci :
Tu crées les conditions à partir du plus général vers le plus spécifique
comme dans : Continent - Pays - Ville - Nom du client - Prénom du client ....
'----------------------------------------
Sub test()
Dim Sh As Worksheet
Set Sh = Worksheets("Feuil1") 'Nom feuille à adapter
With Sh
With .Range("A:Z")
.Sort Key1:=Sh.Range("F1"), Order1:=xlAscending, _
Key2:=Sh.Range("U1"), Order2:=xlAscending, _
Key3:=Sh.Range("K1"), Order3:=xlAscending, Header:=xlNo
.Sort Key1:=Sh.Range("D1"), Order1:=xlDescending, Header:=xlNo
End With
End With
End Sub
'----------------------------------------
MichD
------------------------------------------
"HD" a écrit dans le message de groupe de discussion : jeejjv$lmv$1@saria.nerim.net...
Bonjour,
Pour trier un tableau Excel en VBA j'utilise Sort... mais le souci est que
cette fonction est limitée à 3 critères... lorsque je lance ma ligne vba:
Tu crées les conditions à partir du plus général vers le plus spécifique comme dans : Continent - Pays - Ville - Nom du client - Prénom du client ....
'---------------------------------------- Sub test()
Dim Sh As Worksheet Set Sh = Worksheets("Feuil1") 'Nom feuille à adapter
With Sh With .Range("A:Z") .Sort Key1:=Sh.Range("F1"), Order1:=xlAscending, _ Key2:=Sh.Range("U1"), Order2:=xlAscending, _ Key3:=Sh.Range("K1"), Order3:=xlAscending, Header:=xlNo
.Sort Key1:=Sh.Range("D1"), Order1:=xlDescending, Header:=xlNo End With End With End Sub '----------------------------------------
MichD ------------------------------------------ "HD" a écrit dans le message de groupe de discussion : jeejjv$lmv$
Bonjour,
Pour trier un tableau Excel en VBA j'utilise Sort... mais le souci est que cette fonction est limitée à 3 critères... lorsque je lance ma ligne vba:
Avez vous une autre fonction pour réaliser des tris de tableaux ?
Merci d'avance pour votre aide
Cordialement,
HD
HD
Avec ou sans VBA.. le principe: Tu dois procèder semi-récursivement.. exemple pour 5 critères trie d'abord dans l'odre du premier au dernier les 3 derniers critères puis les 2 premiers
Ok, donc dans mon cas, au lieu d'utiliser: Columns("A:Z").Sort Key1:=Range("F1"), Order1:=xlAscending, _ Key2:=Range("U1"), Order2:=xlAscending, Key3:=Range("K1"), _ Order3:=xlAscending, Key4:=Range("D1"), Order4:=xlAscending, Header:=xlNo
Je ferais un tri en 2 temps: Columns("A:Z").Sort Key1:=Range("U1"), Order1:=xlAscending, _ Key2:=Range("K1"), Order2:=xlAscending, Key3:=Range("D1"), _ Order3:=xlAscending, Header:=xlNo Columns("A:Z").Sort Key1:=Range("F1"), Order1:=xlAscending, Header:=xlNo
Cordialement,
HD
Avec ou sans VBA.. le principe:
Tu dois procèder semi-récursivement.. exemple pour 5 critères
trie d'abord dans l'odre du premier au dernier
les 3 derniers critères
puis les 2 premiers
Ok, donc dans mon cas, au lieu d'utiliser:
Columns("A:Z").Sort Key1:=Range("F1"), Order1:=xlAscending, _
Key2:=Range("U1"), Order2:=xlAscending, Key3:=Range("K1"), _
Order3:=xlAscending, Key4:=Range("D1"), Order4:=xlAscending, Header:=xlNo
Je ferais un tri en 2 temps:
Columns("A:Z").Sort Key1:=Range("U1"), Order1:=xlAscending, _
Key2:=Range("K1"), Order2:=xlAscending, Key3:=Range("D1"), _
Order3:=xlAscending, Header:=xlNo
Columns("A:Z").Sort Key1:=Range("F1"), Order1:=xlAscending, Header:=xlNo
Avec ou sans VBA.. le principe: Tu dois procèder semi-récursivement.. exemple pour 5 critères trie d'abord dans l'odre du premier au dernier les 3 derniers critères puis les 2 premiers
Ok, donc dans mon cas, au lieu d'utiliser: Columns("A:Z").Sort Key1:=Range("F1"), Order1:=xlAscending, _ Key2:=Range("U1"), Order2:=xlAscending, Key3:=Range("K1"), _ Order3:=xlAscending, Key4:=Range("D1"), Order4:=xlAscending, Header:=xlNo
Je ferais un tri en 2 temps: Columns("A:Z").Sort Key1:=Range("U1"), Order1:=xlAscending, _ Key2:=Range("K1"), Order2:=xlAscending, Key3:=Range("D1"), _ Order3:=xlAscending, Header:=xlNo Columns("A:Z").Sort Key1:=Range("F1"), Order1:=xlAscending, Header:=xlNo