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

nom de fichier dans FormulaR1C1

2 réponses
Avatar
Pauline
Bonjour à tous,

voilà mon problème : j'ai un fichier Excel qui est amené à aller chercher
des informations dans un autre fichier, dont le nom change régulièrement.
Donc je met ce nom en variable dans ma macro pour ouvrir le fichier. Exemple :

Workbooks.Open Filename:=BA_dir & BA_nom & ".xls" 'ouvre le fichier base
article

Jusque là, tout va bien... c'est ensuite que ça se corse !!!! Ma macro fait
ensuite une formule de gauche(index/equiv) (pour trouver l'info dans le
fichier BA_nom) et vba me l'incrit ainsi :

Range("C2").Select
ActiveCell.FormulaR1C1 = _
"=LEFT(INDEX('base articles 01092008.xls'!C[7],MATCH(RC[-2],'base
articles 01092008.xls'!C3,0),1),3)"


Sauf que moi le " 'base articles 01092008.xls' " est amené à changer (c'est
le fichier BA_nom que je met en variable)
Comment faire comprendre à FormulaR1C1 qu'elle doit faire l'index-equiv sur
le fichier BA_nom (qui est ouvert d'ailleurs à ce moment de la macro) et pas
sur ce fichier 01092008 ?????
(sachant que les colonnes ne changent pas, je vais chercher toujours les
mêmes)

J'ai pas trouvé la manière d'insérer la variable dans la formule, si vous
avez une soluce, un grand grand merci par avance !!!

2 réponses

Avatar
isabelle
bonjour Pauline,

ActiveCell.FormulaR1C1 = _
"=LEFT(INDEX('" & BA_nom & ".xls'!C[7],MATCH(RC[-2],'" & BA_nom & ".xls'!C3,0),1),3)"

isabelle

Pauline a écrit :
Bonjour à tous,

voilà mon problème : j'ai un fichier Excel qui est amené à aller chercher
des informations dans un autre fichier, dont le nom change régulièrement.
Donc je met ce nom en variable dans ma macro pour ouvrir le fichier. Exemple :

Workbooks.Open Filename:º_dir & BA_nom & ".xls" 'ouvre le fichier base
article

Jusque là, tout va bien... c'est ensuite que ça se corse !!!! Ma macro fait
ensuite une formule de gauche(index/equiv) (pour trouver l'info dans le
fichier BA_nom) et vba me l'incrit ainsi :

Range("C2").Select
ActiveCell.FormulaR1C1 = _
"=LEFT(INDEX('base articles 01092008.xls'!C[7],MATCH(RC[-2],'base
articles 01092008.xls'!C3,0),1),3)"


Sauf que moi le " 'base articles 01092008.xls' " est amené à changer (c'est
le fichier BA_nom que je met en variable)
Comment faire comprendre à FormulaR1C1 qu'elle doit faire l'index-equiv sur
le fichier BA_nom (qui est ouvert d'ailleurs à ce moment de la macro) et pas
sur ce fichier 01092008 ?????
(sachant que les colonnes ne changent pas, je vais chercher toujours les
mêmes)

J'ai pas trouvé la manière d'insérer la variable dans la formule, si vous
avez une soluce, un grand grand merci par avance !!!


Avatar
Pauline
Merci Isabelle, c'est exactement ce que je cherchait !!!!

"isabelle" a écrit :

bonjour Pauline,

ActiveCell.FormulaR1C1 = _
"=LEFT(INDEX('" & BA_nom & ".xls'!C[7],MATCH(RC[-2],'" & BA_nom & ".xls'!C3,0),1),3)"

isabelle

Pauline a écrit :
> Bonjour à tous,
>
> voilà mon problème : j'ai un fichier Excel qui est amené à aller chercher
> des informations dans un autre fichier, dont le nom change régulièrement.
> Donc je met ce nom en variable dans ma macro pour ouvrir le fichier. Exemple :
>
> Workbooks.Open Filename:º_dir & BA_nom & ".xls" 'ouvre le fichier base
> article
>
> Jusque là, tout va bien... c'est ensuite que ça se corse !!!! Ma macro fait
> ensuite une formule de gauche(index/equiv) (pour trouver l'info dans le
> fichier BA_nom) et vba me l'incrit ainsi :
>
> Range("C2").Select
> ActiveCell.FormulaR1C1 = _
> "=LEFT(INDEX('base articles 01092008.xls'!C[7],MATCH(RC[-2],'base
> articles 01092008.xls'!C3,0),1),3)"
>
>
> Sauf que moi le " 'base articles 01092008.xls' " est amené à changer (c'est
> le fichier BA_nom que je met en variable)
> Comment faire comprendre à FormulaR1C1 qu'elle doit faire l'index-equiv sur
> le fichier BA_nom (qui est ouvert d'ailleurs à ce moment de la macro) et pas
> sur ce fichier 01092008 ?????
> (sachant que les colonnes ne changent pas, je vais chercher toujours les
> mêmes)
>
> J'ai pas trouvé la manière d'insérer la variable dans la formule, si vous
> avez une soluce, un grand grand merci par avance !!!