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

(vba) Tri - Key1 + nom (à la place de Range)

9 réponses
Avatar
j-pascal
Bonsoir,

Dans la cellule A1, j'ai : "$B$10" (avec les guillemets) obtenu à partir
d'une formule "adresse". Cette cellule est nommée "Toto"

Dans un tri, je veux remplacer "Key1:= Range("$B$10") par le nom.

Problème : si je fais "Key1:=Toto, Order1, etc" ça ne fonctionne pas car je
récupère l'adresse avec les guillemets !

Question : Peut-on, à ce stade la formule, enlever les guillemets et insérer
ainsi le nom derrière Key1 ?

Merci d'avance pour vos lumières.

Cordialement,

JP

9 réponses

Avatar
Daniel.C
Bonsoir.
Non testé :
Key1:=Split([toto], """")(1)
Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:
e5B%
Bonsoir,

Dans la cellule A1, j'ai : "$B$10" (avec les guillemets) obtenu à partir
d'une formule "adresse". Cette cellule est nommée "Toto"

Dans un tri, je veux remplacer "Key1:= Range("$B$10") par le nom.

Problème : si je fais "Key1:=Toto, Order1, etc" ça ne fonctionne pas car
je récupère l'adresse avec les guillemets !

Question : Peut-on, à ce stade la formule, enlever les guillemets et
insérer ainsi le nom derrière Key1 ?

Merci d'avance pour vos lumières.

Cordialement,

JP


Avatar
JB
Bonjour,

Key1:=Range([toto])

http://cjoint.com/?cCfmTVWxYw

http://boisgontierjacques.free.fr/fichiers/Tri/TriListeDeroulante.xls

JB
http://boisgontierjacques.free.fr

On 27 fév, 23:46, "j-pascal" wrote:
Bonsoir,

Dans la cellule A1, j'ai : "$B$10" (avec les guillemets) obtenu à partir
d'une formule "adresse". Cette cellule est nommée "Toto"

Dans un tri, je veux remplacer "Key1:= Range("$B$10") par le nom.

Problème : si je fais "Key1:=Toto, Order1, etc" ça ne fonctionne pas car je
récupère l'adresse avec les guillemets !

Question : Peut-on, à ce stade la formule, enlever les guillemets et ins érer
ainsi le nom derrière Key1 ?

Merci d'avance pour vos lumières.

Cordialement,

JP


Avatar
j-pascal
Bonjour,

Ton exemple fonction parfaitement, et le mien renvoit :
"La méthode 'Range' de l'objet '_global' a échoué".

Est-ce lié à ma sélection (qui s'affiche bien, néanmoins) ?

'-------
Sub Tri()

CelNonvidesA = Application.CountA(Columns("A:A"))
CelNonvidesB = Application.CountA(Columns("B:B"))
PremLignTri = CelNonvidesA - CelNonvidesB + 1 '(comprend ligne de
titre)

Rows(PremLignTri & ":" & CelNonvidesA).Select

Selection.Sort Key1:=Range([AdrNom]), Order1:=xlAscending,
Header:=xlGuess

End Sub
'-------

@+ ?

JP


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

Bonjour,

Key1:=Range([toto])

http://cjoint.com/?cCfmTVWxYw

http://boisgontierjacques.free.fr/fichiers/Tri/TriListeDeroulante.xls

JB
http://boisgontierjacques.free.fr

On 27 fév, 23:46, "j-pascal" wrote:
Bonsoir,

Dans la cellule A1, j'ai : "$B$10" (avec les guillemets) obtenu à partir
d'une formule "adresse". Cette cellule est nommée "Toto"

Dans un tri, je veux remplacer "Key1:= Range("$B$10") par le nom.

Problème : si je fais "Key1:=Toto, Order1, etc" ça ne fonctionne pas car
je
récupère l'adresse avec les guillemets !

Question : Peut-on, à ce stade la formule, enlever les guillemets et
insérer
ainsi le nom derrière Key1 ?

Merci d'avance pour vos lumières.

Cordialement,

JP


Avatar
Fredo P.
Bonjour
ça fonctionne aussi comme cela. (xl97)
Range("A5:A11").Sort Key1:=[toto], Order1:=xlAscending, Header:=xlGuess
ou si la maniacodu+court vous envai
[A5:A11].Sort Key1:=[toto]
Avatar
Fredo P.
Bonjour
ça fonctionne aussi comme cela. (xl97)
Range("A5:A11").Sort Key1:=[toto], Order1:=xlAscending, Header:=xlGuess
ou si la maniacodu+court vous envahi
[A5:A11].Sort Key1:=[toto]
Avatar
j-pascal
Bonsoir,

Je ne comprends pas d'où vient le problème car j'ai testé sur une
simplification extrême :

Range("A10:Z100").Sort Key1:=Range([AdrNom]), Order1:=xlAscending,
Header:=xlGuess

... et ça ne fonctionne pas !!! J'ai le message d'erreur : La méthode Range
de l'objet Global a échoué.

http://cjoint.com/?cCuinJYYHD J'ai testé et retesté ... Je ne comprends pas
;-(

Tant que je n'ai pas résolu cette étape, je ne peux pas tester la suite !

(La suite, c'est ça :
'--- ça fonctionne -------
'CelNonvidesA = Application.CountA(Columns("A:A"))
'CelNonvidesB = Application.CountA(Columns("B:B"))
'PremLignTri = CelNonvidesA - CelNonvidesB + 1 'si 1 alors comprend ligne
de titre
'-------------------------

'--- Ne fonctionne pas ---
'Rows(PremLignTri & ":" & CelNonvidesA).Select 'ne fonctionne pas !!
'-------------------------

'-------------------------
'Range("$A" & PremLignTri, "$Z" & CelNonvidesA).Select
'Selection.Sort Key1:=Range([AdrNom]), Order1:=xlAscending,
Header:=xlGuess 'NON
'Selection.Sort Key1:=Range("$B$10"), Order1:=xlAscending,
Header:=xlGuess 'OUI !!
'Selection.Sort Key1:=Range [AdrNom], Order1:=xlAscending,
Header:=xlGuess 'NON

'Range("$A" & PremLignTri, "$Z" & CelNonvidesA).Sort
Key1:=Range([AdrNom]), Order1:=xlAscending, Header:=xlGuess 'NON)


@+ ?

JP

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

Bonjour,

Key1:=Range([toto])

http://cjoint.com/?cCfmTVWxYw

http://boisgontierjacques.free.fr/fichiers/Tri/TriListeDeroulante.xls

JB
http://boisgontierjacques.free.fr

On 27 fév, 23:46, "j-pascal" wrote:
Bonsoir,

Dans la cellule A1, j'ai : "$B$10" (avec les guillemets) obtenu à partir
d'une formule "adresse". Cette cellule est nommée "Toto"

Dans un tri, je veux remplacer "Key1:= Range("$B$10") par le nom.

Problème : si je fais "Key1:=Toto, Order1, etc" ça ne fonctionne pas car
je
récupère l'adresse avec les guillemets !

Question : Peut-on, à ce stade la formule, enlever les guillemets et
insérer
ainsi le nom derrière Key1 ?

Merci d'avance pour vos lumières.

Cordialement,

JP


Avatar
JB
L'adresse en C3 est invalide:

http://cjoint.com/?cCuFtOBR2b

JB


On 28 fév, 20:12, "j-pascal" wrote:
Bonsoir,

Je ne comprends pas d'où vient le problème car j'ai testé sur une
simplification extrême :

Range("A10:Z100").Sort Key1:=Range([AdrNom]), Order1:=xlAscending,
Header:=xlGuess

... et ça ne fonctionne pas !!! J'ai le message d'erreur : La méthode Range
de l'objet Global a échoué.

http://cjoint.com/?cCuinJYYHD J'ai testé et retesté ... Je ne compre nds pas
;-(

Tant que je n'ai pas résolu cette étape, je ne peux pas tester la suit e !

(La suite, c'est ça :
'--- ça fonctionne -------
'CelNonvidesA = Application.CountA(Columns("A:A"))
'CelNonvidesB = Application.CountA(Columns("B:B"))
'PremLignTri = CelNonvidesA - CelNonvidesB + 1  'si 1 alors comprend l igne
de titre
'-------------------------

'--- Ne fonctionne pas ---
'Rows(PremLignTri & ":" & CelNonvidesA).Select  'ne fonctionne pas !!
'-------------------------

'-------------------------
'Range("$A" & PremLignTri, "$Z" & CelNonvidesA).Select
    'Selection.Sort Key1:=Range([AdrNom]), Order1:=xlAscending,
Header:=xlGuess 'NON
    'Selection.Sort Key1:=Range("$B$10"), Order1:=xlAscending,
Header:=xlGuess  'OUI  !!
    'Selection.Sort Key1:=Range [AdrNom], Order1:=xlAscending,
Header:=xlGuess  'NON

    'Range("$A" & PremLignTri, "$Z" & CelNonvidesA).Sort
Key1:=Range([AdrNom]), Order1:=xlAscending, Header:=xlGuess  'NON)

@+ ?

JP

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

Bonjour,

Key1:=Range([toto])

http://cjoint.com/?cCfmTVWxYw

http://boisgontierjacques.free.fr/fichiers/Tri/TriListeDeroulante.xls

JBhttp://boisgontierjacques.free.fr

On 27 fév, 23:46, "j-pascal" wrote:



Bonsoir,

Dans la cellule A1, j'ai : "$B$10" (avec les guillemets) obtenu à part ir
d'une formule "adresse". Cette cellule est nommée "Toto"

Dans un tri, je veux remplacer "Key1:= Range("$B$10") par le nom.

Problème : si je fais "Key1:=Toto, Order1, etc" ça ne fonctionne p as car
je
récupère l'adresse avec les guillemets !

Question : Peut-on, à ce stade la formule, enlever les guillemets et
insérer
ainsi le nom derrière Key1 ?

Merci d'avance pour vos lumières.

Cordialement,

JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
j-pascal
Mon MERCI est à la hauteur de ma HONNNNTTE !!! C'est peu dire ;-)

JP

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

L'adresse en C3 est invalide:

http://cjoint.com/?cCuFtOBR2b

JB


On 28 fév, 20:12, "j-pascal" wrote:
Bonsoir,

Je ne comprends pas d'où vient le problème car j'ai testé sur une
simplification extrême :

Range("A10:Z100").Sort Key1:=Range([AdrNom]), Order1:=xlAscending,
Header:=xlGuess

... et ça ne fonctionne pas !!! J'ai le message d'erreur : La méthode
Range
de l'objet Global a échoué.

http://cjoint.com/?cCuinJYYHD J'ai testé et retesté ... Je ne comprends
pas
;-(

Tant que je n'ai pas résolu cette étape, je ne peux pas tester la suite !

(La suite, c'est ça :
'--- ça fonctionne -------
'CelNonvidesA = Application.CountA(Columns("A:A"))
'CelNonvidesB = Application.CountA(Columns("B:B"))
'PremLignTri = CelNonvidesA - CelNonvidesB + 1 'si 1 alors comprend ligne
de titre
'-------------------------

'--- Ne fonctionne pas ---
'Rows(PremLignTri & ":" & CelNonvidesA).Select 'ne fonctionne pas !!
'-------------------------

'-------------------------
'Range("$A" & PremLignTri, "$Z" & CelNonvidesA).Select
'Selection.Sort Key1:=Range([AdrNom]), Order1:=xlAscending,
Header:=xlGuess 'NON
'Selection.Sort Key1:=Range("$B$10"), Order1:=xlAscending,
Header:=xlGuess 'OUI !!
'Selection.Sort Key1:=Range [AdrNom], Order1:=xlAscending,
Header:=xlGuess 'NON

'Range("$A" & PremLignTri, "$Z" & CelNonvidesA).Sort
Key1:=Range([AdrNom]), Order1:=xlAscending, Header:=xlGuess 'NON)

@+ ?

JP

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

Bonjour,

Key1:=Range([toto])

http://cjoint.com/?cCfmTVWxYw

http://boisgontierjacques.free.fr/fichiers/Tri/TriListeDeroulante.xls

JBhttp://boisgontierjacques.free.fr

On 27 fév, 23:46, "j-pascal" wrote:



Bonsoir,

Dans la cellule A1, j'ai : "$B$10" (avec les guillemets) obtenu à partir
d'une formule "adresse". Cette cellule est nommée "Toto"

Dans un tri, je veux remplacer "Key1:= Range("$B$10") par le nom.

Problème : si je fais "Key1:=Toto, Order1, etc" ça ne fonctionne pas car
je
récupère l'adresse avec les guillemets !

Question : Peut-on, à ce stade la formule, enlever les guillemets et
insérer
ainsi le nom derrière Key1 ?

Merci d'avance pour vos lumières.

Cordialement,

JP- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
j-pascal
Bonsoir,

Merci pour cette proposition, mais je crains (sauf erreur de ma part)
qu'elle ne s'applique pas à ce problème particulier.
Je note le raccourci pour les Tris "classiques".

Cordialement,

JP

"Fredo P." a écrit dans le
message de news:
Bonjour
ça fonctionne aussi comme cela. (xl97)
Range("A5:A11").Sort Key1:=[toto], Order1:=xlAscending, Header:=xlGuess
ou si la maniacodu+court vous envahi
[A5:A11].Sort Key1:=[toto]