OVH Cloud OVH Cloud

Nommer un champ par VBA

1 réponse
Avatar
Jdel
Bonsoir,
Cette partie de code ne déclanche pas d'erreur mais elle ne crée pas le nom
de champ demandée (Liste_Jug_Lots).

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

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

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

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

Merci
Jean-Pierre

1 réponse

Avatar
michdenis
Bonjour Jdel,


As-tu essayé de cette façon :

Observe : il y a une façon plus directe de définir un "NOM"
à partir de la variable d'un objet "Range".

'------------------------------
'Définir le type des variables est une bonne idée !
Dim ColJugLots As Range
Dim LimaX As Long

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

'Création du nom associé à la plage
ColJugLots.Name = "ColJugLots"

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

'RC[-35] -> ce type de syntaxe me donne de l'urticaire...
'pourquoi ne pas utiliser l'autre type de syntaxe ...c'est plus parlant !!!
'------------------------------


Salutations!



"Jdel" a écrit dans le message de news: 437e13a3$0$19698$
Bonsoir,
Cette partie de code ne déclanche pas d'erreur mais elle ne crée pas le nom
de champ demandée (Liste_Jug_Lots).

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

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

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

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

Merci
Jean-Pierre