OVH Cloud OVH Cloud

Nommer un champ par VBA 2è

9 réponses
Avatar
Jdel
Bonjour,
N'ayant pas eu de réponse à ma question d'hier, elle doit être mal posée, je
recommence :

J'ai cette ligne de code qui est chargée de nommer le champ "ColJugLots" :

ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:="=ColJugLots"

J'ai auparavant défini la plage ColJugLots et les variables utilisées :

LimaX = FTamp.Cells(1, 1).SpecialCells(xlLastCell).Row
Set ColJugLots = FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX, 39))

La variable (FTamp) est déjà définie plus haut dans le code elle identifie
une feuille.

Après, j'utilise le nom dans une fomule RECHERCHEV, elle aussi copiée dans
une plage par la macro :

Set ColCodJug = FTamp.Range(FTamp.Cells(2, 35), FTamp.Cells(LimaX, 35))
ColCodJug.FormulaR1C1 = "=VLOOKUP(RC[-35],Liste_Jug_Lots,3,FALSE)"

La macro s'exécute normalement, la formule RECHERCHEV se retrouve bien dans
les bonnes cellules mais elle a pour résultat NOM? car la plage n'est pas
nommée.

Pourquoi, puisqu'il n'y a pas d'erreur macro, cette ligne ne
fonctionne-t-elle pas

Merci pour vos réponses

Jean-Pierre

9 réponses

Avatar
LSteph
Bonjour Jdel,
Sans voir le reste du code ni comment en sont indépendament définies les
variables (peut-être),
donc à priori:

Set ColJuglots= FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX, 39))


te permet d'affecter à cette variable la plage concernée

Cela n'en fait pas pour autant un nom dans la feuille.

Aussi, me semble-t-il:
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:="=ColJugLots"
affecte dans la feuille au nom Liste_Jug_Lots

référence à un nom ColJugLots qui n'existe pas.

lSteph

"Jdel" a écrit dans le message de news:
437eda2b$0$6641$
Bonjour,
N'ayant pas eu de réponse à ma question d'hier, elle doit être mal posée,
je
recommence :

J'ai cette ligne de code qui est chargée de nommer le champ "ColJugLots" :

ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:="=ColJugLots"

J'ai auparavant défini la plage ColJugLots et les variables utilisées :

LimaX = FTamp.Cells(1, 1).SpecialCells(xlLastCell).Row
Set ColJugLots = FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX, 39))

La variable (FTamp) est déjà définie plus haut dans le code elle identifie
une feuille.

Après, j'utilise le nom dans une fomule RECHERCHEV, elle aussi copiée dans
une plage par la macro :

Set ColCodJug = FTamp.Range(FTamp.Cells(2, 35), FTamp.Cells(LimaX, 35))
ColCodJug.FormulaR1C1 = "=VLOOKUP(RC[-35],Liste_Jug_Lots,3,FALSE)"

La macro s'exécute normalement, la formule RECHERCHEV se retrouve bien
dans
les bonnes cellules mais elle a pour résultat NOM? car la plage n'est pas
nommée.

Pourquoi, puisqu'il n'y a pas d'erreur macro, cette ligne ne
fonctionne-t-elle pas

Merci pour vos réponses

Jean-Pierre





Avatar
Jdel
Bonjour LSteph
Je veux donner le nom "Liste_Jug_Lots" à la plage définie par la variable
"ColJugLots"

"LSteph" a écrit dans le message de news:
%
Bonjour Jdel,
Sans voir le reste du code ni comment en sont indépendament définies les
variables (peut-être),
donc à priori:

Set ColJuglots= FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX, 39))


te permet d'affecter à cette variable la plage concernée

Cela n'en fait pas pour autant un nom dans la feuille.

Aussi, me semble-t-il:
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:="=ColJugLots"
affecte dans la feuille au nom Liste_Jug_Lots

référence à un nom ColJugLots qui n'existe pas.

lSteph

"Jdel" a écrit dans le message de news:
437eda2b$0$6641$
Bonjour,
N'ayant pas eu de réponse à ma question d'hier, elle doit être mal posée,
je
recommence :

J'ai cette ligne de code qui est chargée de nommer le champ "ColJugLots"
:

ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:="=ColJugLots"

J'ai auparavant défini la plage ColJugLots et les variables utilisées :

LimaX = FTamp.Cells(1, 1).SpecialCells(xlLastCell).Row
Set ColJugLots = FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX, 39))

La variable (FTamp) est déjà définie plus haut dans le code elle
identifie
une feuille.

Après, j'utilise le nom dans une fomule RECHERCHEV, elle aussi copiée
dans
une plage par la macro :

Set ColCodJug = FTamp.Range(FTamp.Cells(2, 35), FTamp.Cells(LimaX, 35))
ColCodJug.FormulaR1C1 = "=VLOOKUP(RC[-35],Liste_Jug_Lots,3,FALSE)"

La macro s'exécute normalement, la formule RECHERCHEV se retrouve bien
dans
les bonnes cellules mais elle a pour résultat NOM? car la plage n'est pas
nommée.

Pourquoi, puisqu'il n'y a pas d'erreur macro, cette ligne ne
fonctionne-t-elle pas

Merci pour vos réponses

Jean-Pierre









Avatar
Jdel
J'ai oublié de dire que je travaille avec Excel 97 sous NT4

"Jdel" a écrit dans le message de news:
437ee32c$0$6666$
Bonjour LSteph
Je veux donner le nom "Liste_Jug_Lots" à la plage définie par la variable
"ColJugLots"

"LSteph" a écrit dans le message de news:
%
Bonjour Jdel,
Sans voir le reste du code ni comment en sont indépendament définies les
variables (peut-être),
donc à priori:

Set ColJuglots= FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX, 39))


te permet d'affecter à cette variable la plage concernée

Cela n'en fait pas pour autant un nom dans la feuille.

Aussi, me semble-t-il:
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:="=ColJugLots"
affecte dans la feuille au nom Liste_Jug_Lots

référence à un nom ColJugLots qui n'existe pas.

lSteph

"Jdel" a écrit dans le message de news:
437eda2b$0$6641$
Bonjour,
N'ayant pas eu de réponse à ma question d'hier, elle doit être mal
posée, je
recommence :

J'ai cette ligne de code qui est chargée de nommer le champ "ColJugLots"
:

ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:="=ColJugLots"

J'ai auparavant défini la plage ColJugLots et les variables utilisées :

LimaX = FTamp.Cells(1, 1).SpecialCells(xlLastCell).Row
Set ColJugLots = FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX, 39))

La variable (FTamp) est déjà définie plus haut dans le code elle
identifie
une feuille.

Après, j'utilise le nom dans une fomule RECHERCHEV, elle aussi copiée
dans
une plage par la macro :

Set ColCodJug = FTamp.Range(FTamp.Cells(2, 35), FTamp.Cells(LimaX, 35))
ColCodJug.FormulaR1C1 = "=VLOOKUP(RC[-35],Liste_Jug_Lots,3,FALSE)"

La macro s'exécute normalement, la formule RECHERCHEV se retrouve bien
dans
les bonnes cellules mais elle a pour résultat NOM? car la plage n'est
pas
nommée.

Pourquoi, puisqu'il n'y a pas d'erreur macro, cette ligne ne
fonctionne-t-elle pas

Merci pour vos réponses

Jean-Pierre













Avatar
LSteph
...re,
A adapter
voici un exemple avec la sélection préalablement affectée à la variable:

Sub afectplgnom()
Dim colJuglots As Range
Set colJuglots = Selection
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", _
RefersTo:=colJuglots
End Sub

'lSteph
"Jdel" a écrit dans le message de news:
437ee32c$0$6666$
Bonjour LSteph
Je veux donner le nom "Liste_Jug_Lots" à la plage définie par la variable
"ColJugLots"

"LSteph" a écrit dans le message de news:
%
Bonjour Jdel,
Sans voir le reste du code ni comment en sont indépendament définies les
variables (peut-être),
donc à priori:

Set ColJuglots= FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX, 39))


te permet d'affecter à cette variable la plage concernée

Cela n'en fait pas pour autant un nom dans la feuille.

Aussi, me semble-t-il:
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:="=ColJugLots"
affecte dans la feuille au nom Liste_Jug_Lots

référence à un nom ColJugLots qui n'existe pas.

lSteph

"Jdel" a écrit dans le message de news:
437eda2b$0$6641$
Bonjour,
N'ayant pas eu de réponse à ma question d'hier, elle doit être mal
posée, je
recommence :

J'ai cette ligne de code qui est chargée de nommer le champ "ColJugLots"
:

ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:="=ColJugLots"

J'ai auparavant défini la plage ColJugLots et les variables utilisées :

LimaX = FTamp.Cells(1, 1).SpecialCells(xlLastCell).Row
Set ColJugLots = FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX, 39))

La variable (FTamp) est déjà définie plus haut dans le code elle
identifie
une feuille.

Après, j'utilise le nom dans une fomule RECHERCHEV, elle aussi copiée
dans
une plage par la macro :

Set ColCodJug = FTamp.Range(FTamp.Cells(2, 35), FTamp.Cells(LimaX, 35))
ColCodJug.FormulaR1C1 = "=VLOOKUP(RC[-35],Liste_Jug_Lots,3,FALSE)"

La macro s'exécute normalement, la formule RECHERCHEV se retrouve bien
dans
les bonnes cellules mais elle a pour résultat NOM? car la plage n'est
pas
nommée.

Pourquoi, puisqu'il n'y a pas d'erreur macro, cette ligne ne
fonctionne-t-elle pas

Merci pour vos réponses

Jean-Pierre













Avatar
Jdel
Ca me donne une idée, c'est peut être parceque j'ai déclaré "ColJugLots" "As
Object" et non "As Range"
J'essairai de changer ça lundi
Sinon, je verrai avec ton exemple si je peux faire quelque chose

Merci et @+

"LSteph" a écrit dans le message de news:
%
...re,
A adapter
voici un exemple avec la sélection préalablement affectée à la variable:

Sub afectplgnom()
Dim colJuglots As Range
Set colJuglots = Selection
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", _
RefersTo:=colJuglots
End Sub

'lSteph
"Jdel" a écrit dans le message de news:
437ee32c$0$6666$
Bonjour LSteph
Je veux donner le nom "Liste_Jug_Lots" à la plage définie par la variable
"ColJugLots"

"LSteph" a écrit dans le message de news:
%
Bonjour Jdel,
Sans voir le reste du code ni comment en sont indépendament définies les
variables (peut-être),
donc à priori:

Set ColJuglots= FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX, 39))


te permet d'affecter à cette variable la plage concernée

Cela n'en fait pas pour autant un nom dans la feuille.

Aussi, me semble-t-il:
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots",
RefersTo:="=ColJugLots"
affecte dans la feuille au nom Liste_Jug_Lots

référence à un nom ColJugLots qui n'existe pas.

lSteph

"Jdel" a écrit dans le message de news:
437eda2b$0$6641$
Bonjour,
N'ayant pas eu de réponse à ma question d'hier, elle doit être mal
posée, je
recommence :

J'ai cette ligne de code qui est chargée de nommer le champ
"ColJugLots" :

ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots",
RefersTo:="=ColJugLots"

J'ai auparavant défini la plage ColJugLots et les variables utilisées :

LimaX = FTamp.Cells(1, 1).SpecialCells(xlLastCell).Row
Set ColJugLots = FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX,
39))

La variable (FTamp) est déjà définie plus haut dans le code elle
identifie
une feuille.

Après, j'utilise le nom dans une fomule RECHERCHEV, elle aussi copiée
dans
une plage par la macro :

Set ColCodJug = FTamp.Range(FTamp.Cells(2, 35), FTamp.Cells(LimaX, 35))
ColCodJug.FormulaR1C1 = "=VLOOKUP(RC[-35],Liste_Jug_Lots,3,FALSE)"

La macro s'exécute normalement, la formule RECHERCHEV se retrouve bien
dans
les bonnes cellules mais elle a pour résultat NOM? car la plage n'est
pas
nommée.

Pourquoi, puisqu'il n'y a pas d'erreur macro, cette ligne ne
fonctionne-t-elle pas

Merci pour vos réponses

Jean-Pierre

















Avatar
LSteph
....
C'est aussi parceque tu l'affectes
avec des guillemets et le signe
égal comme s'il s'agissait d'un autre nom du classeur.
....
Tiens nous au courant.

A+.
lSteph
"Jdel" a écrit dans le message de news:
437eebb8$0$19690$
Ca me donne une idée, c'est peut être parceque j'ai déclaré "ColJugLots"
"As Object" et non "As Range"
J'essairai de changer ça lundi
Sinon, je verrai avec ton exemple si je peux faire quelque chose

Merci et @+

"LSteph" a écrit dans le message de news:
%
...re,
A adapter
voici un exemple avec la sélection préalablement affectée à la variable:

Sub afectplgnom()
Dim colJuglots As Range
Set colJuglots = Selection
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", _
RefersTo:=colJuglots
End Sub

'lSteph
"Jdel" a écrit dans le message de news:
437ee32c$0$6666$
Bonjour LSteph
Je veux donner le nom "Liste_Jug_Lots" à la plage définie par la
variable "ColJugLots"

"LSteph" a écrit dans le message de news:
%
Bonjour Jdel,
Sans voir le reste du code ni comment en sont indépendament définies
les variables (peut-être),
donc à priori:

Set ColJuglots= FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX, 39))


te permet d'affecter à cette variable la plage concernée

Cela n'en fait pas pour autant un nom dans la feuille.

Aussi, me semble-t-il:
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots",
RefersTo:="=ColJugLots"
affecte dans la feuille au nom Liste_Jug_Lots

référence à un nom ColJugLots qui n'existe pas.

lSteph

"Jdel" a écrit dans le message de news:
437eda2b$0$6641$
Bonjour,
N'ayant pas eu de réponse à ma question d'hier, elle doit être mal
posée, je
recommence :

J'ai cette ligne de code qui est chargée de nommer le champ
"ColJugLots" :

ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots",
RefersTo:="=ColJugLots"

J'ai auparavant défini la plage ColJugLots et les variables utilisées
:

LimaX = FTamp.Cells(1, 1).SpecialCells(xlLastCell).Row
Set ColJugLots = FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX,
39))

La variable (FTamp) est déjà définie plus haut dans le code elle
identifie
une feuille.

Après, j'utilise le nom dans une fomule RECHERCHEV, elle aussi copiée
dans
une plage par la macro :

Set ColCodJug = FTamp.Range(FTamp.Cells(2, 35), FTamp.Cells(LimaX,
35))
ColCodJug.FormulaR1C1 = "=VLOOKUP(RC[-35],Liste_Jug_Lots,3,FALSE)"

La macro s'exécute normalement, la formule RECHERCHEV se retrouve bien
dans
les bonnes cellules mais elle a pour résultat NOM? car la plage n'est
pas
nommée.

Pourquoi, puisqu'il n'y a pas d'erreur macro, cette ligne ne
fonctionne-t-elle pas

Merci pour vos réponses

Jean-Pierre





















Avatar
Jdel
Il faudrait écrire ça comment alors
Texte d'origine :
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:="=ColJugLots"

Comme ça ?
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:=ColJugLots

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

....
C'est aussi parceque tu l'affectes
avec des guillemets et le signe
égal comme s'il s'agissait d'un autre nom du classeur.
....
Tiens nous au courant.

A+.
lSteph
"Jdel" a écrit dans le message de news:
437eebb8$0$19690$
Ca me donne une idée, c'est peut être parceque j'ai déclaré "ColJugLots"
"As Object" et non "As Range"
J'essairai de changer ça lundi
Sinon, je verrai avec ton exemple si je peux faire quelque chose

Merci et @+

"LSteph" a écrit dans le message de news:
%
...re,
A adapter
voici un exemple avec la sélection préalablement affectée à la variable:

Sub afectplgnom()
Dim colJuglots As Range
Set colJuglots = Selection
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", _
RefersTo:=colJuglots
End Sub

'lSteph
"Jdel" a écrit dans le message de news:
437ee32c$0$6666$
Bonjour LSteph
Je veux donner le nom "Liste_Jug_Lots" à la plage définie par la
variable "ColJugLots"

"LSteph" a écrit dans le message de news:
%
Bonjour Jdel,
Sans voir le reste du code ni comment en sont indépendament définies
les variables (peut-être),
donc à priori:

Set ColJuglots= FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX,
39))


te permet d'affecter à cette variable la plage concernée

Cela n'en fait pas pour autant un nom dans la feuille.

Aussi, me semble-t-il:
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots",
RefersTo:="=ColJugLots"
affecte dans la feuille au nom Liste_Jug_Lots

référence à un nom ColJugLots qui n'existe pas.

lSteph

"Jdel" a écrit dans le message de news:
437eda2b$0$6641$
Bonjour,
N'ayant pas eu de réponse à ma question d'hier, elle doit être mal
posée, je
recommence :

J'ai cette ligne de code qui est chargée de nommer le champ
"ColJugLots" :

ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots",
RefersTo:="=ColJugLots"

J'ai auparavant défini la plage ColJugLots et les variables utilisées
:

LimaX = FTamp.Cells(1, 1).SpecialCells(xlLastCell).Row
Set ColJugLots = FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX,
39))

La variable (FTamp) est déjà définie plus haut dans le code elle
identifie
une feuille.

Après, j'utilise le nom dans une fomule RECHERCHEV, elle aussi copiée
dans
une plage par la macro :

Set ColCodJug = FTamp.Range(FTamp.Cells(2, 35), FTamp.Cells(LimaX,
35))
ColCodJug.FormulaR1C1 = "=VLOOKUP(RC[-35],Liste_Jug_Lots,3,FALSE)"

La macro s'exécute normalement, la formule RECHERCHEV se retrouve
bien dans
les bonnes cellules mais elle a pour résultat NOM? car la plage n'est
pas
nommée.

Pourquoi, puisqu'il n'y a pas d'erreur macro, cette ligne ne
fonctionne-t-elle pas

Merci pour vos réponses

Jean-Pierre

























Avatar
LSteph
Par exemple oui et en tant que Range...
(donc tu l'aura compris sous réserve de ce que renvoient les autres
variables mises en oeuvre)
a+
lSteph
"Jdel" a écrit dans le message de news:
437ef175$0$29213$
Il faudrait écrire ça comment alors
Texte d'origine :
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:="=ColJugLots"

Comme ça ?
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:=ColJugLots

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

....
C'est aussi parceque tu l'affectes
avec des guillemets et le signe
égal comme s'il s'agissait d'un autre nom du classeur.
....
Tiens nous au courant.

A+.
lSteph
"Jdel" a écrit dans le message de news:
437eebb8$0$19690$
Ca me donne une idée, c'est peut être parceque j'ai déclaré "ColJugLots"
"As Object" et non "As Range"
J'essairai de changer ça lundi
Sinon, je verrai avec ton exemple si je peux faire quelque chose

Merci et @+

"LSteph" a écrit dans le message de news:
%
...re,
A adapter
voici un exemple avec la sélection préalablement affectée à la
variable:

Sub afectplgnom()
Dim colJuglots As Range
Set colJuglots = Selection
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", _
RefersTo:=colJuglots
End Sub

'lSteph
"Jdel" a écrit dans le message de news:
437ee32c$0$6666$
Bonjour LSteph
Je veux donner le nom "Liste_Jug_Lots" à la plage définie par la
variable "ColJugLots"

"LSteph" a écrit dans le message de news:
%
Bonjour Jdel,
Sans voir le reste du code ni comment en sont indépendament définies
les variables (peut-être),
donc à priori:

Set ColJuglots= FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX,
39))


te permet d'affecter à cette variable la plage concernée

Cela n'en fait pas pour autant un nom dans la feuille.

Aussi, me semble-t-il:
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots",
RefersTo:="=ColJugLots"
affecte dans la feuille au nom Liste_Jug_Lots

référence à un nom ColJugLots qui n'existe pas.

lSteph

"Jdel" a écrit dans le message de news:
437eda2b$0$6641$
Bonjour,
N'ayant pas eu de réponse à ma question d'hier, elle doit être mal
posée, je
recommence :

J'ai cette ligne de code qui est chargée de nommer le champ
"ColJugLots" :

ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots",
RefersTo:="=ColJugLots"

J'ai auparavant défini la plage ColJugLots et les variables
utilisées :

LimaX = FTamp.Cells(1, 1).SpecialCells(xlLastCell).Row
Set ColJugLots = FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX,
39))

La variable (FTamp) est déjà définie plus haut dans le code elle
identifie
une feuille.

Après, j'utilise le nom dans une fomule RECHERCHEV, elle aussi
copiée dans
une plage par la macro :

Set ColCodJug = FTamp.Range(FTamp.Cells(2, 35), FTamp.Cells(LimaX,
35))
ColCodJug.FormulaR1C1 = "=VLOOKUP(RC[-35],Liste_Jug_Lots,3,FALSE)"

La macro s'exécute normalement, la formule RECHERCHEV se retrouve
bien dans
les bonnes cellules mais elle a pour résultat NOM? car la plage
n'est pas
nommée.

Pourquoi, puisqu'il n'y a pas d'erreur macro, cette ligne ne
fonctionne-t-elle pas

Merci pour vos réponses

Jean-Pierre





























Avatar
Jdel
Merci et à lundi soir, je te dirai si ça a marché

"LSteph" a écrit dans le message de news:
eqW$
Par exemple oui et en tant que Range...
(donc tu l'aura compris sous réserve de ce que renvoient les autres
variables mises en oeuvre)
a+
lSteph
"Jdel" a écrit dans le message de news:
437ef175$0$29213$
Il faudrait écrire ça comment alors
Texte d'origine :
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:="=ColJugLots"

Comme ça ?
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:=ColJugLots

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

....
C'est aussi parceque tu l'affectes
avec des guillemets et le signe
égal comme s'il s'agissait d'un autre nom du classeur.
....
Tiens nous au courant.

A+.
lSteph
"Jdel" a écrit dans le message de news:
437eebb8$0$19690$
Ca me donne une idée, c'est peut être parceque j'ai déclaré
"ColJugLots" "As Object" et non "As Range"
J'essairai de changer ça lundi
Sinon, je verrai avec ton exemple si je peux faire quelque chose

Merci et @+

"LSteph" a écrit dans le message de news:
%
...re,
A adapter
voici un exemple avec la sélection préalablement affectée à la
variable:

Sub afectplgnom()
Dim colJuglots As Range
Set colJuglots = Selection
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", _
RefersTo:=colJuglots
End Sub

'lSteph
"Jdel" a écrit dans le message de news:
437ee32c$0$6666$
Bonjour LSteph
Je veux donner le nom "Liste_Jug_Lots" à la plage définie par la
variable "ColJugLots"

"LSteph" a écrit dans le message de news:
%
Bonjour Jdel,
Sans voir le reste du code ni comment en sont indépendament définies
les variables (peut-être),
donc à priori:

Set ColJuglots= FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX,
39))


te permet d'affecter à cette variable la plage concernée

Cela n'en fait pas pour autant un nom dans la feuille.

Aussi, me semble-t-il:
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots",
RefersTo:="=ColJugLots"
affecte dans la feuille au nom Liste_Jug_Lots

référence à un nom ColJugLots qui n'existe pas.

lSteph

"Jdel" a écrit dans le message de news:
437eda2b$0$6641$
Bonjour,
N'ayant pas eu de réponse à ma question d'hier, elle doit être mal
posée, je
recommence :

J'ai cette ligne de code qui est chargée de nommer le champ
"ColJugLots" :

ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots",
RefersTo:="=ColJugLots"

J'ai auparavant défini la plage ColJugLots et les variables
utilisées :

LimaX = FTamp.Cells(1, 1).SpecialCells(xlLastCell).Row
Set ColJugLots = FTamp.Range(FTamp.Cells(2, 37), FTamp.Cells(LimaX,
39))

La variable (FTamp) est déjà définie plus haut dans le code elle
identifie
une feuille.

Après, j'utilise le nom dans une fomule RECHERCHEV, elle aussi
copiée dans
une plage par la macro :

Set ColCodJug = FTamp.Range(FTamp.Cells(2, 35), FTamp.Cells(LimaX,
35))
ColCodJug.FormulaR1C1 = "=VLOOKUP(RC[-35],Liste_Jug_Lots,3,FALSE)"

La macro s'exécute normalement, la formule RECHERCHEV se retrouve
bien dans
les bonnes cellules mais elle a pour résultat NOM? car la plage
n'est pas
nommée.

Pourquoi, puisqu'il n'y a pas d'erreur macro, cette ligne ne
fonctionne-t-elle pas

Merci pour vos réponses

Jean-Pierre