OVH Cloud OVH Cloud

Cohérence dans le tri

9 réponses
Avatar
Alpha
Bonsoir,
je souhaite créer une proc qui trie un tableau A3:L15000
suivant un critère , or faut-il sélectionner le tableau A3:L15000 dans la
proc ou ne rien sélectionner du tout et lancer la macro ?
Car ayant les titres en gras en A2:L2, théoriquement la deuxième soluce doit
s'effectuer ?
J'ai testé les deux et cela fonctionne. Laquelle de ces soluces est la plus
cohérentes ?
Merci pour vos réponses
Alpha

9 réponses

Avatar
ChrisV
Bonjour Alpha,

AMHA, toujours plus prudent de spécifier la plage sur laquelle s'effectuera
le tri...


ChrisV


"Alpha" a écrit dans le message de news:
#
Bonsoir,
je souhaite créer une proc qui trie un tableau A3:L15000
suivant un critère , or faut-il sélectionner le tableau A3:L15000 dans la
proc ou ne rien sélectionner du tout et lancer la macro ?
Car ayant les titres en gras en A2:L2, théoriquement la deuxième soluce
doit

s'effectuer ?
J'ai testé les deux et cela fonctionne. Laquelle de ces soluces est la
plus

cohérentes ?
Merci pour vos réponses
Alpha




Avatar
Nicolas B.
Salut,

AMHA, il vaut mieux préciser la plage de tri. Sinon, tu finis toujours par
avoir des macros qui plantent sans savoir pourquoi ;-)

Cependant, pour ton problème, je crois qu tu n'as pas le choix :
l'enregistreur de macros me donne pour les deux tri (l'un avec sélection,
l'autre sans) :

Range("A1:B4").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending

et

Range("A1:B4").Sort Key1:=Range("A2"), Order1:=xlAscending

Tu vois que dans les deux cas, il apparaît Range("A1:B4") (le tableau en
entier). Les deux reviennent donc au même, mais retient plutôt la deuxième
solution, ç'est plus rapide pour VBA (aussi bien en calculs qu'en longuer de
code :-)


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Bonsoir,
je souhaite créer une proc qui trie un tableau A3:L15000
suivant un critère , or faut-il sélectionner le tableau A3:L15000
dans la proc ou ne rien sélectionner du tout et lancer la macro ?
Car ayant les titres en gras en A2:L2, théoriquement la deuxième
soluce doit s'effectuer ?
J'ai testé les deux et cela fonctionne. Laquelle de ces soluces est
la plus cohérentes ?
Merci pour vos réponses
Alpha


Avatar
Alpha
Merci beaucoup ChrisV
Alpha


"ChrisV" a écrit dans le message de
news:
Bonjour Alpha,

AMHA, toujours plus prudent de spécifier la plage sur laquelle
s'effectuera

le tri...


ChrisV


"Alpha" a écrit dans le message de news:
#
Bonsoir,
je souhaite créer une proc qui trie un tableau A3:L15000
suivant un critère , or faut-il sélectionner le tableau A3:L15000 dans
la


proc ou ne rien sélectionner du tout et lancer la macro ?
Car ayant les titres en gras en A2:L2, théoriquement la deuxième soluce
doit

s'effectuer ?
J'ai testé les deux et cela fonctionne. Laquelle de ces soluces est la
plus

cohérentes ?
Merci pour vos réponses
Alpha








Avatar
Alpha
Merci beaucoup Nicolas
En fait, lorsque je sélectionne la plage afin de faire le filtre A3:A15000,
il se place automatiquement sur A4:A15000, avec ligne de titre sur oui, puis
lorsque je mets ligne de titre sur non, il ne me propose pas les entêtes
mais les N° de colonne ??? Alors qu'en faisant la macro directement, il se
positionne idéalement !
Alpha

"Nicolas B." a écrit dans le message de
news:
Salut,

AMHA, il vaut mieux préciser la plage de tri. Sinon, tu finis toujours par
avoir des macros qui plantent sans savoir pourquoi ;-)

Cependant, pour ton problème, je crois qu tu n'as pas le choix :
l'enregistreur de macros me donne pour les deux tri (l'un avec sélection,
l'autre sans) :

Range("A1:B4").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending

et

Range("A1:B4").Sort Key1:=Range("A2"), Order1:=xlAscending

Tu vois que dans les deux cas, il apparaît Range("A1:B4") (le tableau en
entier). Les deux reviennent donc au même, mais retient plutôt la deuxième
solution, ç'est plus rapide pour VBA (aussi bien en calculs qu'en longuer
de

code :-)


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Bonsoir,
je souhaite créer une proc qui trie un tableau A3:L15000
suivant un critère , or faut-il sélectionner le tableau A3:L15000
dans la proc ou ne rien sélectionner du tout et lancer la macro ?
Car ayant les titres en gras en A2:L2, théoriquement la deuxième
soluce doit s'effectuer ?
J'ai testé les deux et cela fonctionne. Laquelle de ces soluces est
la plus cohérentes ?
Merci pour vos réponses
Alpha






Avatar
Nicolas B.
Tu peux vérifier (toujours avec l'enregistreur de macros) que cela revient
au même (de sélectionner les titres ou non). La sélection change, mais les
arguments de Selection.Sort restent les mêmes. Si tu veux vraiment être sûr
de ton coup, je te propose ceci en rajoutant l'argument Header, qui indique
bien que la ligne de titre est sélectionnée :

Range("A1:B4").Sort Key1:=Range("A1"), _
Order1:=xlAscending,Header:=xlYes


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Merci beaucoup Nicolas
En fait, lorsque je sélectionne la plage afin de faire le filtre
A3:A15000, il se place automatiquement sur A4:A15000, avec ligne de
titre sur oui, puis lorsque je mets ligne de titre sur non, il ne me
propose pas les entêtes mais les N° de colonne ??? Alors qu'en
faisant la macro directement, il se positionne idéalement !
Alpha



Avatar
Alpha
Bravo et merci
Alpha

"Nicolas B." a écrit dans le message de
news:%
Tu peux vérifier (toujours avec l'enregistreur de macros) que cela revient
au même (de sélectionner les titres ou non). La sélection change, mais les
arguments de Selection.Sort restent les mêmes. Si tu veux vraiment être
sûr

de ton coup, je te propose ceci en rajoutant l'argument Header, qui
indique

bien que la ligne de titre est sélectionnée :

Range("A1:B4").Sort Key1:=Range("A1"), _
Order1:=xlAscending,Header:=xlYes


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Merci beaucoup Nicolas
En fait, lorsque je sélectionne la plage afin de faire le filtre
A3:A15000, il se place automatiquement sur A4:A15000, avec ligne de
titre sur oui, puis lorsque je mets ligne de titre sur non, il ne me
propose pas les entêtes mais les N° de colonne ??? Alors qu'en
faisant la macro directement, il se positionne idéalement !
Alpha







Avatar
Clément Marcotte
Bonjour,

AMHA, toujours plus prudent de spécifier la plage sur laquelle
s'effectuera

le tri...



Tout à fait d'accord. Excel 97, par exemple, est (était) très
erratique en triant des plages non sélectionnées. Pour les versions
plus récentes, je ne sais pas. Mais comme on dit: "la prudence est la
mère de la sûreté".

Avatar
Alpha
Merci Clément,
je suis définitivement convaincu ;-)
Alpha

"Clément Marcotte" a écrit dans le message
de news:OsTr%
Bonjour,

AMHA, toujours plus prudent de spécifier la plage sur laquelle
s'effectuera

le tri...



Tout à fait d'accord. Excel 97, par exemple, est (était) très
erratique en triant des plages non sélectionnées. Pour les versions
plus récentes, je ne sais pas. Mais comme on dit: "la prudence est la
mère de la sûreté".





Avatar
ChrisV
Waste ! >:-)


ChrisV


"Alpha" a écrit dans le message de news:
O0#
Merci beaucoup ChrisV
Alpha