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

insertion definir un même nom sur plusieurs onglets d'un même fi ch

6 réponses
Avatar
ALF
Bonjour,

Sauf erreur de ma part ,il me semble que le nom d'une cellule est lié au
fichier et non pas à un onglet de ce fichier??
Je voudrais definir un nom nommé "NATIONAL" à la cellule A55 de mon fichier
TEST.XLS, mais ceci sur les 7 onglets de ce fichier et avec le même nom
chaque fois..
le probleme est que à chaque insertion /nom /definir la cellule fait
reference au nom defini sur le precedent onglet et ainsi de suite..cela a
pour consequence que si je crée une liste de choix avec donnee /validation
cela retourne une erreur "1004" "la methode range de l'objet worksheet a
echoué"...
je vous laisse ci joint cette methode:

Private Sub Worksheet Change (ByVal Target As Range)
If Target.Address = "$A$1" Then Range(Target).Select
End Sub

Comment resoudre ce probleme ??

Merci.
--
ALF

6 réponses

Avatar
isabelle
bonjour ALF,

utilise la fonction Indirect pour la référence,

=INDIRECT("A1")


isabelle


Bonjour,

Sauf erreur de ma part ,il me semble que le nom d'une cellule est lié au
fichier et non pas à un onglet de ce fichier??
Je voudrais definir un nom nommé "NATIONAL" à la cellule A55 de mon fichier
TEST.XLS, mais ceci sur les 7 onglets de ce fichier et avec le même nom
chaque fois..
le probleme est que à chaque insertion /nom /definir la cellule fait
reference au nom defini sur le precedent onglet et ainsi de suite..cela a
pour consequence que si je crée une liste de choix avec donnee /validation
cela retourne une erreur "1004" "la methode range de l'objet worksheet a
echoué"...
je vous laisse ci joint cette methode:

Private Sub Worksheet Change (ByVal Target As Range)
If Target.Address = "$A$1" Then Range(Target).Select
End Sub

Comment resoudre ce probleme ??

Merci.


Avatar
ALF
Re,

d'accord mais comment inserer INDIRECT dans Private Sub Worksheet Change ???

Private Sub Worksheet Change (ByVal Target As Range)
If Target.Address = INDIRECT("A1") Then Range(Target).Select
End Sub -------------> ne fonctionne pas

Private Sub Worksheet Change (ByVal Target As Range)
If Target.Address = INDIRECT("$A$1") Then Range(Target).Select
End Sub -------------> ne fonctionne pas


Merci
--
ALF



bonjour ALF,

utilise la fonction Indirect pour la référence,

=INDIRECT("A1")


isabelle


Bonjour,

Sauf erreur de ma part ,il me semble que le nom d'une cellule est lié au
fichier et non pas à un onglet de ce fichier??
Je voudrais definir un nom nommé "NATIONAL" à la cellule A55 de mon fichier
TEST.XLS, mais ceci sur les 7 onglets de ce fichier et avec le même nom
chaque fois..
le probleme est que à chaque insertion /nom /definir la cellule fait
reference au nom defini sur le precedent onglet et ainsi de suite..cela a
pour consequence que si je crée une liste de choix avec donnee /validation
cela retourne une erreur "1004" "la methode range de l'objet worksheet a
echoué"...
je vous laisse ci joint cette methode:

Private Sub Worksheet Change (ByVal Target As Range)
If Target.Address = "$A$1" Then Range(Target).Select
End Sub

Comment resoudre ce probleme ??

Merci.





Avatar
ALF
Re,

Le probleme ,c'est qu'il y a , plusieurs cellules à atteindre..il n'y a pas
que "NATIONAL" qui est défini ,il y a aussi AVIGNON,BREST,LIMOGES,LISIEUX,IDF
et ST OMER..
la procedure risque d'etre pompeuse...

On aurait donc:

Private Sub Worksheet Change (ByVal Target As Range)
ActiveWorkbook.Names.Add Name:="NATIONAL", RefersTo:="=INDIRECT(""A1"")"
If Target.Address = Range("NATIONAL").Address Then y = y + 1
ActiveWorkbook.Names.Add Name:="BREST", RefersTo:="=INDIRECT(""A1"")"
If Target.Address = Range("BREST").Address Then y = y + 1
ActiveWorkbook.Names.Add Name:="LIMOGES", RefersTo:="=INDIRECT(""A1"")"
If Target.Address = Range("LIMOGES").Address Then y = y + 1
ETC...

End Sub


qu'en pensez vous ??

--
ALF



bonjour ALF,

c'est deux choses différente,

'pour créer la référence
ActiveWorkbook.Names.Add Name:="NATIONAL", RefersTo:="=INDIRECT(""A1"")"

'pour utilisé cette référence,
If Target.Address = Range("NATIONAL").Address Then y = y + 1

isabelle


Re,

d'accord mais comment inserer INDIRECT dans Private Sub Worksheet Change ???

Private Sub Worksheet Change (ByVal Target As Range)
If Target.Address = INDIRECT("A1") Then Range(Target).Select
End Sub -------------> ne fonctionne pas

Private Sub Worksheet Change (ByVal Target As Range)
If Target.Address = INDIRECT("$A$1") Then Range(Target).Select
End Sub -------------> ne fonctionne pas


Merci





Avatar
isabelle
bonjour ALF,

c'est deux choses différente,

'pour créer la référence
ActiveWorkbook.Names.Add Name:="NATIONAL", RefersTo:="=INDIRECT(""A1"")"

'pour utilisé cette référence,
If Target.Address = Range("NATIONAL").Address Then y = y + 1

isabelle


Re,

d'accord mais comment inserer INDIRECT dans Private Sub Worksheet Change ???

Private Sub Worksheet Change (ByVal Target As Range)
If Target.Address = INDIRECT("A1") Then Range(Target).Select
End Sub -------------> ne fonctionne pas

Private Sub Worksheet Change (ByVal Target As Range)
If Target.Address = INDIRECT("$A$1") Then Range(Target).Select
End Sub -------------> ne fonctionne pas


Merci


Avatar
Gaston
Bonjour ALF
Si je retourne au début, ta question est de défénir un nom qui va à toutes
les feuilles.
Insertion/Définir/Test, sélectionne A1. Dans "Fait référence à" tu enlèves
le nom de la feuille en gardant seulement le point d'exclamation.
Comme ça le nom "Test" vaut pour toutes les cellules A1 de toutes les
feuilles.
Bye
Gaston

"ALF" wrote:

Bonjour,

Sauf erreur de ma part ,il me semble que le nom d'une cellule est lié au
fichier et non pas à un onglet de ce fichier??
Je voudrais definir un nom nommé "NATIONAL" à la cellule A55 de mon fichier
TEST.XLS, mais ceci sur les 7 onglets de ce fichier et avec le même nom
chaque fois..
le probleme est que à chaque insertion /nom /definir la cellule fait
reference au nom defini sur le precedent onglet et ainsi de suite..cela a
pour consequence que si je crée une liste de choix avec donnee /validation
cela retourne une erreur "1004" "la methode range de l'objet worksheet a
echoué"...
je vous laisse ci joint cette methode:

Private Sub Worksheet Change (ByVal Target As Range)
If Target.Address = "$A$1" Then Range(Target).Select
End Sub

Comment resoudre ce probleme ??

Merci.
--
ALF


Avatar
ALF
Bonsoir GASTON,

Je dirai un seul mot : GENIAL !!!

Merci .
--
ALF



Bonjour ALF
Si je retourne au début, ta question est de défénir un nom qui va à toutes
les feuilles.
Insertion/Définir/Test, sélectionne A1. Dans "Fait référence à" tu enlèves
le nom de la feuille en gardant seulement le point d'exclamation.
Comme ça le nom "Test" vaut pour toutes les cellules A1 de toutes les
feuilles.
Bye
Gaston

"ALF" wrote:

Bonjour,

Sauf erreur de ma part ,il me semble que le nom d'une cellule est lié au
fichier et non pas à un onglet de ce fichier??
Je voudrais definir un nom nommé "NATIONAL" à la cellule A55 de mon fichier
TEST.XLS, mais ceci sur les 7 onglets de ce fichier et avec le même nom
chaque fois..
le probleme est que à chaque insertion /nom /definir la cellule fait
reference au nom defini sur le precedent onglet et ainsi de suite..cela a
pour consequence que si je crée une liste de choix avec donnee /validation
cela retourne une erreur "1004" "la methode range de l'objet worksheet a
echoué"...
je vous laisse ci joint cette methode:

Private Sub Worksheet Change (ByVal Target As Range)
If Target.Address = "$A$1" Then Range(Target).Select
End Sub

Comment resoudre ce probleme ??

Merci.
--
ALF