OVH Cloud OVH Cloud

Trie sur array

7 réponses
Avatar
JLuc
Salut a toutes et tous,
En vba, je recupere les enregistrements de mes contacts Outlook, mais
ceux ci sont un peut dans le desordre :-?
Quelqu'un pourrai me donner une piste pour les classes sur la colonne 1
puis sur la colonne 2 ?
Matable(300,3) 300 lignes 3 colonnes j'ai beaucoup, beucoup d'amis ;o)
Merci d'avance
JLuc

7 réponses

Avatar
Jacques93
Bonsoir JLuc

A adapter :

Range("A1:B300").Sort Key1:=Range("A1"), _
Order1:=xlAscending, _
Key2:=Range("B1"), _
Order2:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:úlse, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal

Salut a toutes et tous,
En vba, je recupere les enregistrements de mes contacts Outlook, mais
ceux ci sont un peut dans le desordre :-?
Quelqu'un pourrai me donner une piste pour les classes sur la colonne 1
puis sur la colonne 2 ?
Matable(300,3) 300 lignes 3 colonnes j'ai beaucoup, beucoup d'amis ;o)
Merci d'avance
JLuc





--
Cordialement,

Jacques.

Avatar
JLuc
Salut,
C'est gentil a toi de me proposer cette solution, seulement voila,
c'est pas une plage de cellule, c'est un tableau en vba :
Dim MaTable( 1 to 300, 1 to 3) :oÞ
Ta solution est au poil, mais sur une selection de cellules dans une
feuille
Merci
JLuc

Bonsoir JLuc

A adapter :

Range("A1:B300").Sort Key1:=Range("A1"), _
Order1:=xlAscending, _
Key2:=Range("B1"), _
Order2:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:úlse, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal

Salut a toutes et tous,
En vba, je recupere les enregistrements de mes contacts Outlook, mais ceux
ci sont un peut dans le desordre :-?
Quelqu'un pourrai me donner une piste pour les classes sur la colonne 1
puis sur la colonne 2 ?
Matable(300,3) 300 lignes 3 colonnes j'ai beaucoup, beucoup d'amis ;o)
Merci d'avance
JLuc






Avatar
anonymousA
bonjour,

attention au fait que DataOption1 ou DataOption2 sont des arguments qui
n'apparaissent qu'au delà au moins d'Excel200.

Cordialement,

A+


Bonsoir JLuc

A adapter :

Range("A1:B300").Sort Key1:=Range("A1"), _
Order1:=xlAscending, _
Key2:=Range("B1"), _
Order2:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:úlse, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal


Salut a toutes et tous,
En vba, je recupere les enregistrements de mes contacts Outlook, mais
ceux ci sont un peut dans le desordre :-?
Quelqu'un pourrai me donner une piste pour les classes sur la colonne
1 puis sur la colonne 2 ?
Matable(300,3) 300 lignes 3 colonnes j'ai beaucoup, beucoup d'amis ;o)
Merci d'avance
JLuc








Avatar
JLuc
Toute mes excuses, je n'avais pas relu ma question et il est vrai que
c'est pas tres clair :o)
Mais c'est bien un tableau declarer en vba et rempli de meme ou je
stocke mes contact : pas de feuilles.
Merci
JLuc

Bonsoir JLuc

A adapter :

Range("A1:B300").Sort Key1:=Range("A1"), _
Order1:=xlAscending, _
Key2:=Range("B1"), _
Order2:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:úlse, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal

Salut a toutes et tous,
En vba, je recupere les enregistrements de mes contacts Outlook, mais ceux
ci sont un peut dans le desordre :-?
Quelqu'un pourrai me donner une piste pour les classes sur la colonne 1
puis sur la colonne 2 ?
Matable(300,3) 300 lignes 3 colonnes j'ai beaucoup, beucoup d'amis ;o)
Merci d'avance
JLuc






Avatar
anonymousA
bonjour,

ben , t'as 2 solutions, soit tu mets ton tableau sur une feuille que tu
crées au besoin et tu tries puis tu rapatries la plage triée dans ton
tableau et tu supprimes la feuille créée pour l'occasion , ou bien tu
utilises une proc de tri du style Quicksort (disponible sur le site de
Frédéric Sigonneau) très rapide et qui trie sans difficulté un tableau.

A+


Salut,
C'est gentil a toi de me proposer cette solution, seulement voila, c'est
pas une plage de cellule, c'est un tableau en vba :
Dim MaTable( 1 to 300, 1 to 3) :oÞ
Ta solution est au poil, mais sur une selection de cellules dans une
feuille
Merci
JLuc

Bonsoir JLuc

A adapter :

Range("A1:B300").Sort Key1:=Range("A1"), _
Order1:=xlAscending, _
Key2:=Range("B1"), _
Order2:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:úlse, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal


Salut a toutes et tous,
En vba, je recupere les enregistrements de mes contacts Outlook, mais
ceux ci sont un peut dans le desordre :-?
Quelqu'un pourrai me donner une piste pour les classes sur la colonne
1 puis sur la colonne 2 ?
Matable(300,3) 300 lignes 3 colonnes j'ai beaucoup, beucoup d'amis ;o)
Merci d'avance
JLuc










Avatar
Jacques93
Bonsoir anonymousA,

J'ai utilisé avec l'enregistreur de macro d'Excel 2003 ;-)

bonjour,

attention au fait que DataOption1 ou DataOption2 sont des arguments qui
n'apparaissent qu'au delà au moins d'Excel200.

Cordialement,

A+




--
Cordialement,

Jacques.

Avatar
Jacques93
Bonsoir anonymousA,

J'aurais pas dit mieux, tant qu'on est Excel autant profiter de ses
possibilités, bien que je n'ai rien contre un tri en VBA ;-)

bonjour,

ben , t'as 2 solutions, soit tu mets ton tableau sur une feuille que tu
crées au besoin et tu tries puis tu rapatries la plage triée dans ton
tableau et tu supprimes la feuille créée pour l'occasion , ou bien tu
utilises une proc de tri du style Quicksort (disponible sur le site de
Frédéric Sigonneau) très rapide et qui trie sans difficulté un tableau.




--
Cordialement,

Jacques.