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

Application.goto dans le code d'un bouton

9 réponses
Avatar
Pierre Jagut
Bonjour,

J'ai une macro qui contient l'instruction : Application.goto
Reference:="Val_Saisie"
"Val_Saisie" est le nom d'une plage nommée dans une feuille que je
sélectionne à l'instruction précédente.

- Quand je lance la macro par Outils\Macro\Exécuter, ça marche
- Quand je la lance par un bouton sur la feuille, soit par un "Call", soit
en copiant le code, j'obtiens l'erreur '1004' qui m'indique que "la méthode
'Goto' de l'objet '_Application' a échoué".

J'avoue mon incompréhension...
Quelqu'un peut-il m'aider ?

Merci d'avance

Pierre JAGUT

9 réponses

Avatar
Pierre Jagut
Re-bonjour,

Remarque : j'ai trouvé une parade avec Range("Val_Saisie").Select qui
fonctionne dans tous les cas.
Donc vous pouvez laisser tomber vos recherches. Merci pour ceux qui s'y sont
penché.

Mais si vous avez une idée de l'origine de l'erreur qui était apparue, je
suis preneur pour mieux comprendre le fonctionnement des boutons (que
j'utilise rarement, j'avoue).

Pierre.

"Pierre Jagut" a écrit dans le message de
news:bk4l09$46o$
Bonjour,

J'ai une macro qui contient l'instruction : Application.goto
Reference:="Val_Saisie"
"Val_Saisie" est le nom d'une plage nommée dans une feuille que je
sélectionne à l'instruction précédente.

- Quand je lance la macro par OutilsMacroExécuter, ça marche
- Quand je la lance par un bouton sur la feuille, soit par un "Call", soit
en copiant le code, j'obtiens l'erreur '1004' qui m'indique que "la
méthode

'Goto' de l'objet '_Application' a échoué".

J'avoue mon incompréhension...
Quelqu'un peut-il m'aider ?

Merci d'avance

Pierre JAGUT




Avatar
Vincent.
Salut Pierre !
Cette heure vient du fait que la référence du GoTo doit
être soit un objet range (en particulier, je pense qu'en
mettant :=Range("Val_Saisie") ça devrait marcher) soit une
référence de type R1C1...
L'aide de vba sur la distinction entre le GoTo et Select
est instructive à ce sujet !

tchô

Vincent.

-----Message d'origine-----
Re-bonjour,

Remarque : j'ai trouvé une parade avec Range
("Val_Saisie").Select qui

fonctionne dans tous les cas.
Donc vous pouvez laisser tomber vos recherches. Merci
pour ceux qui s'y sont

penché.

Mais si vous avez une idée de l'origine de l'erreur qui
était apparue, je

suis preneur pour mieux comprendre le fonctionnement des
boutons (que

j'utilise rarement, j'avoue).

Pierre.

"Pierre Jagut" a écrit dans le message de
news:bk4l09$46o$
Bonjour,

J'ai une macro qui contient l'instruction :
Application.goto


Reference:="Val_Saisie"
"Val_Saisie" est le nom d'une plage nommée dans une
feuille que je


sélectionne à l'instruction précédente.

- Quand je lance la macro par OutilsMacroExécuter, ça
marche


- Quand je la lance par un bouton sur la feuille, soit
par un "Call", soit


en copiant le code, j'obtiens l'erreur '1004' qui
m'indique que "la


méthode
'Goto' de l'objet '_Application' a échoué".

J'avoue mon incompréhension...
Quelqu'un peut-il m'aider ?

Merci d'avance

Pierre JAGUT





.




Avatar
Vincent.
Salut Pierre !
Cette heure vient du fait que la référence du GoTo doit
être soit un objet range (en particulier, je pense qu'en
mettant :=Range("Val_Saisie") ça devrait marcher) soit une
référence de type R1C1...
L'aide de vba sur la distinction entre le GoTo et Select
est instructive à ce sujet !

tchô

Vincent.

-----Message d'origine-----
Re-bonjour,

Remarque : j'ai trouvé une parade avec Range
("Val_Saisie").Select qui

fonctionne dans tous les cas.
Donc vous pouvez laisser tomber vos recherches. Merci
pour ceux qui s'y sont

penché.

Mais si vous avez une idée de l'origine de l'erreur qui
était apparue, je

suis preneur pour mieux comprendre le fonctionnement des
boutons (que

j'utilise rarement, j'avoue).

Pierre.

"Pierre Jagut" a écrit dans le message de
news:bk4l09$46o$
Bonjour,

J'ai une macro qui contient l'instruction :
Application.goto


Reference:="Val_Saisie"
"Val_Saisie" est le nom d'une plage nommée dans une
feuille que je


sélectionne à l'instruction précédente.

- Quand je lance la macro par OutilsMacroExécuter, ça
marche


- Quand je la lance par un bouton sur la feuille, soit
par un "Call", soit


en copiant le code, j'obtiens l'erreur '1004' qui
m'indique que "la


méthode
'Goto' de l'objet '_Application' a échoué".

J'avoue mon incompréhension...
Quelqu'un peut-il m'aider ?

Merci d'avance

Pierre JAGUT





.




Avatar
AV
Ou bien....

Application.Goto Reference:=[Val_Saisie]

AV
Avatar
Vincent.
Salut AV. !

Pour mon insatiable curiosité, y a-t-il une quelconque
différence entre [...] et Range(...) avec ... étant une
chaîne de caractère ?
Parce que ça pourrait alléger le code de certains fichiers
à moi ça !
A+

Vincent.

-----Message d'origine-----
Ou bien....

Application.Goto Reference:=[Val_Saisie]

AV


.



Avatar
AV
Pour mon insatiable curiosité, y a-t-il une quelconque
différence entre [...] et Range(...) avec ... étant une
chaîne de caractère ?


Au niveau du résultat, pas vraiment

AV

Avatar
Pierre Jagut
Bonjour, et merci à AV pour ces information.
Ce [Nom_de_Zone] peut effectivement être très utile.
Mais si le nom de la zone est dans une variable, je suppose que l'on ne peut
alors utiliser que Range(Variable_Nom_de_Zone).

Pierre.

"AV" a écrit dans le message de
news:
Pour mon insatiable curiosité, y a-t-il une quelconque
différence entre [...] et Range(...) avec ... étant une
chaîne de caractère ?


Au niveau du résultat, pas vraiment

AV





Avatar
Vincent.
Donc en résumé, si je vous suit bien, c mieux d'utiliser
le range ?! ou alors, j'ai encore rien compris moi...
A+

-----Message d'origine-----
Bonjour, et merci à AV pour ces information.
Ce [Nom_de_Zone] peut effectivement être très utile.
Mais si le nom de la zone est dans une variable, je
suppose que l'on ne peut

alors utiliser que Range(Variable_Nom_de_Zone).

Pierre.

"AV" a écrit dans le message de
news:
Pour mon insatiable curiosité, y a-t-il une quelconque
différence entre [...] et Range(...) avec ... étant une
chaîne de caractère ?


Au niveau du résultat, pas vraiment

AV





.





Avatar
AV
Mais si le nom de la zone est dans une variable, je suppose que l'on ne peut
alors utiliser que Range(Variable_Nom_de_Zone).


Avec, par ex., la valeur de la variable (nom de la plage nommée à selectionner)
en C1, ça ferait :

Range([C1]).Select

AV