Se connecter avec
S'enregistrer | Connectez-vous

macro excel : nom fichier en variable ds formule

Dernière réponse : dans Programmation

Bonjour à tous,
je n'arrive pas à mettre un nom de fichier externe en variable dans une formule attribuée à une cellule par macro excel.

En plus clair, voici ma commande : ActiveCell.Offset(0, 6).FormulaR1C1 = _ "=VLOOKUP(RC[-6],'[nomfichier.xls]Feuil1'!C2:C3,2,FALSE)"

Je n'ai jamais réussi à remplacer le 'nomfichier.xls' (en dur) par une variable contenant le nom de mon fichier. Comment faire ?

Pour info, VLOOKUP correspond à la fonction RECHERCHEV (très pratique !)

un petit grain de sable et toute la machine est grippée ...
Lassé par la pub ? Créez un compte
Expert Programmation

Oui. Ce code VBA ne fait que remplir une cellule.
Donc tu peux le faire directement. Il faut juste "localiser" (traduire) le nom des fonctions et constantes.

Regarde donc la fonction INDIRECT.

Je n'en dirai pas plus ici, ce n'est plus de la programmation, c'est de l'utilisation d'Excel.

Bonjour,

Ce code correspond exactement à ce que je cherche, malheureusement lors de l'exécution, le nom du fichier apparaît 2 fois et la formule ne renvoi pas de valeur.

Mon code :
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-17],'[" & Fichier & "]Feuil1'!C4:C14,11,0)"

Le résultat dans la feuille Excel :
=RECHERCHEV(F2;'[C:\[nomfichier.xls]Feuil1]nomfichier!$D:$N;11;0)

La variable Fichier allant chercher le nom du fichier avec la fonction :
Fichier = Application.GetOpenFilename("Fichier Excel,*.xls", , "Choix du fichier")

Je n'arrive pas à résoudre ce PB.

Merci de votre aide

Bonjour,

Finalement j'ai résolu mon problème (Merci Internet).

Il venait du fait qu'il y avait le chemin avec le nom du fichier, j'ai donc supprimer le chemin avec :

Dim SplitChemin() As String
SplitChemin = Split(Fichier, "\", -1, vbTextCompare)
Fichier1 = SplitChemin(UBound(SplitChemin))

et c'est donc la variable Fichier1 que j'utilise dans la formule VLOOKUP.

Cordialement
Lassé par la pub ? Créez un compte