OVH Cloud OVH Cloud

Nommer un champ par VBA

2 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

2 réponses

Avatar
Daniel
Bonjour.
En utilisant les lignes de ton code, je n'ai pas de problème chez moi. La
plage est bien nommée. Bizarre.
Cordialement.
Daniel
"Jdel" a écrit dans le message de news:
437ed080$0$19674$
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
docm
Bonjour.

Je crois que ton erreur vient de ce que tu mets dans RefersTo.
Essaie avec une vatriable comme ceci:

sRef = "=" & FTamp.Name & "!" & ColJugLots.Address
ActiveWorkbook.Names.Add Name:="Liste_Jug_Lots", RefersTo:=sRef

docm

"Jdel" a écrit dans le message news:
437ed080$0$19674$
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