OVH Cloud OVH Cloud

Tri sans sélectionner la feuille

8 réponses
Avatar
Didier
Bonjour, désolé, mais j'ai dû mal à voir pourquoi cela ne fonctionne pas
Merci et bonne journée
Didier

With Sheets("Liste")
.Range("B2:B50").Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("D2").Select
End With

8 réponses

Avatar
Joël GARBE
Bonsoir,

en supprimant le selection qui trîne, cela devrait aller mieux ?
Un seule colonne sera triée (B), toutes les autres sont figées !!!
.Range("B2:B50").Sort Key1:=Range("B2"), Order1:=xlAscending
--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Didier" a écrit dans le message de news:

Bonjour, désolé, mais j'ai dû mal à voir pourquoi cela ne fonctionne pas
Merci et bonne journée
Didier

With Sheets("Liste")
.Range("B2:B50").Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("D2").Select
End With



Avatar
Olivier Derrez
Il se trouve que Didier a formulé :
Bonjour, désolé, mais j'ai dû mal à voir pourquoi cela ne fonctionne pas
Merci et bonne journée
Didier

With Sheets("Liste")
.Range("B2:B50").Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("D2").Select
End With


L'aide de l'éditeur VBA nous dit :

"Cette méthode trie un rapport de tableau croisé dynamique, une plage
ou une région active si la plage spécifiée contient seulement une
cellule."

Il apparaît que, visiblement, la feuille dans laquelle tu fais ton tri
doit, préalablement, être sélectionnée.

De fait, si on remplace ton code par celui-ci :

Sheets("Liste").Select
Range("B2:B50").Sort Key1:=Range("B2"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("D2").Select

tout rentre dans l'ordre.

A noter que dans ton exemple, Selection est inutile ou plutôt provoque
une erreur. Tu aurais pû l'utiliser dans le cas suivant :

Sheets("Liste").Select
Range("B2:B50").Select
Selection.Sort etc....

--
Olivier Derrez
La vie, c'est comme une boîte de chocolats...

Avatar
Didier
Bonsoir Joël et merci de me répondre aussi vite, mais la procédure plante
il me dit référence de tri non valide, je vais essayé de comprendre
Didier

"Joël GARBE" a écrit dans le message de news:
41b32a56$0$16354$
Bonsoir,

en supprimant le selection qui trîne, cela devrait aller mieux ?
Un seule colonne sera triée (B), toutes les autres sont figées !!!
.Range("B2:B50").Sort Key1:=Range("B2"), Order1:=xlAscending
--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Didier" a écrit dans le message de news:

Bonjour, désolé, mais j'ai dû mal à voir pourquoi cela ne fonctionne pas
Merci et bonne journée
Didier

With Sheets("Liste")
.Range("B2:B50").Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("D2").Select
End With







Avatar
Didier
Bonjour Olivier
Effectivement, j'ai utilisé ta proc mais afin que la feuille ne se voit pas
j'ai mis en amont "application.screenupdating = false", et en aval
"application.screenupdating = true", cela fonctionne impeccablement.
Merci et bonne journée
Didier



"Olivier Derrez" a écrit dans le message de news:

Il se trouve que Didier a formulé :
Bonjour, désolé, mais j'ai dû mal à voir pourquoi cela ne fonctionne pas
Merci et bonne journée
Didier

With Sheets("Liste")
.Range("B2:B50").Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("D2").Select
End With


L'aide de l'éditeur VBA nous dit :

"Cette méthode trie un rapport de tableau croisé dynamique, une plage ou
une région active si la plage spécifiée contient seulement une cellule."

Il apparaît que, visiblement, la feuille dans laquelle tu fais ton tri
doit, préalablement, être sélectionnée.

De fait, si on remplace ton code par celui-ci :

Sheets("Liste").Select
Range("B2:B50").Sort Key1:=Range("B2"), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("D2").Select

tout rentre dans l'ordre.

A noter que dans ton exemple, Selection est inutile ou plutôt provoque une
erreur. Tu aurais pû l'utiliser dans le cas suivant :

Sheets("Liste").Select
Range("B2:B50").Select
Selection.Sort etc....

--
Olivier Derrez
La vie, c'est comme une boîte de chocolats...




Avatar
Daniel.M
Bonjour,

.Range("B2:B50").Sort Key1:=Range("B2"), Order1:=xlAscending
Bonsoir Joël et merci de me répondre aussi vite, mais la procédure plante

il me dit référence de tri non valide, je vais essayé de comprendre
Didier


.Range("B2:B50").Sort Key1:=.Range("B2"), Order1:=xlAscending

Salutations,

Daniel M.


Avatar
Joël GARBE
j'l'avions point vu ;-)))))

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Daniel.M" a écrit dans le message de
news:
Bonjour,

.Range("B2:B50").Sort Key1:=Range("B2"), Order1:=xlAscending
Bonsoir Joël et merci de me répondre aussi vite, mais la procédure plante

il me dit référence de tri non valide, je vais essayé de comprendre
Didier


.Range("B2:B50").Sort Key1:=.Range("B2"), Order1:=xlAscending

Salutations,

Daniel M.






Avatar
Daniel.M
:-))

Daniel M.


"Joël GARBE" wrote in message
news:41b33b52$0$16366$
j'l'avions point vu ;-)))))

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Daniel.M" a écrit dans le message de
news:
Bonjour,

.Range("B2:B50").Sort Key1:=Range("B2"), Order1:=xlAscending
Bonsoir Joël et merci de me répondre aussi vite, mais la procédure plante

il me dit référence de tri non valide, je vais essayé de comprendre
Didier


.Range("B2:B50").Sort Key1:=.Range("B2"), Order1:=xlAscending

Salutations,

Daniel M.










Avatar
Didier
Bravo c'est impeccable
Merci encore
Didier

"Daniel.M" a écrit dans le message de
news:
Bonjour,

.Range("B2:B50").Sort Key1:=Range("B2"), Order1:=xlAscending
Bonsoir Joël et merci de me répondre aussi vite, mais la procédure plante

il me dit référence de tri non valide, je vais essayé de comprendre
Didier


.Range("B2:B50").Sort Key1:=.Range("B2"), Order1:=xlAscending

Salutations,

Daniel M.