Création de nom

Résolu
ESCOUGER Messages postés 31 Statut Membre -  
pijaku Messages postés 13513 Statut Modérateur -
Bonjour,
Je désire créer un nom via une macro. Ce nom sera ultérieurement utilisé dans une instruction VLOOKUP.
Mon problème: La référence qui est crée est encadrée par des guillemets, ce qui entraîne un rejet syntaxique de l'instruction. Comment faire pour éviter ces guillemets.
Voici le code que j'ai écrit:
z_table = "$D$20009:$FS$" & lig_work ' lig_work contient ici 20580
ActiveWorkbook.Names("matrice").Delete
'nouveau nom
ActiveWorkbook.Worksheets("recap").Names.Add Name:="matrice", RefersToR1C1Local _
:=z_table

Résultat: matrice = "$D$20009:$FS$20580"


zvlook1 = "=vlookup(z1,matrice,3,FALSE)"
ActiveCell.Formula = zvlook1

Cette formule est rejetée car elle est interprétée comme:
vlookup(z1,"$D$20009:$FS$20580",3,FALSE)

Si, en mode debug, après la création du nom et avant l'instruction vlookup je supprime ces guillemets çà marche.

Comment puis-je faire pour que ces guillemets ne soient pas générés?

Merci d'avance de votre aide.
Gérard
--

2 réponses

pijaku Messages postés 13513 Statut Modérateur 2 763
 
Salut,

Les guillemets se mettent automatiquement parce que tu travailles avec des variables de type String.
Or, dans ton cas, la plage de calcul d'une formule est un Range, et donc se doit d'être déclaré comme tel.
Soit :
Dim z_table As Range
Set z_table = Worksheets("Feuil1").Range("$D$2:$FS$" & lig_work) ' lig_work contient ici 20580
ActiveWorkbook.Names("matrice").Delete
'nouveau nom
ActiveWorkbook.Worksheets("recap").Names.Add Name:="matrice", RefersToR1C1Local _
:=z_table
zvlook1 = "=vlookup(z1,matrice,3,FALSE)"
ActiveCell.Formula = zvlook1
--
Cordialement,
Franck
0
ESCOUGER Messages postés 31 Statut Membre
 
Merci beaucoup. Cela marche maintenant parfaitement.
Gérard

--
0
pijaku Messages postés 13513 Statut Modérateur 2 763
 
De rien.
A+
0