Comment concaténer des éléments à ma formule ?

massol

XLDnaute Junior
Bonjour,

Dans la cellule B4 de mon fichier, je récupère une valeur issue d'un fichier EXCEL fermé (fichier "synthese.xls"). Pour cela j'utilise la commande suivante :

='C:\Users\jmassol\Desktop\recup\[synthese.xls]Feuil1'!$B2

Le problème c'est qu'en fait la donnée à récupérer (et donc le fichier "synthèse.xls") se situe dans le dossier 'C:\Users\jmassol\Desktop\recup\UB4840'.

Le dernier terme (UB4840) est une variable qui apparait dans la cellule A4. Cette valeur est le résultat d'une concaténation.

1- Comment dois-je modifier ma commande pour concaténer 'C:\Users\jmassol\Desktop\recup\' et 'UB4840' de sorte à obtenir 'C:\Users\jmassol\Desktop\recup\UB4840' ?

2- Le nom du fichier dans lequel se trouve la donnée à récupérer est également une variable (valeur entre crochet proposée au début = variable). Celle-ci apparait dans la cellule F4. Comment dois-je modifier ma commande pour que le nom du fichier à scruter soit une variable ?

3- Même question pour l'onglet ("Feuil1" dans la ligne de commande proposée au départ).

En vous remerciant par avance.

Cdlt.
Jérôme.
 

massol

XLDnaute Junior
Je viens de tester.
Malheureusement cette technique ne fonctionne que dans un sub, pas dans une fonction personnalisée.
Il te reste à trouver les bonnes références à activer pour la solution que tu as trouvée.
eric

Voici ce que l on m a proposé sur le forum hardware : j y regarde demain.

Code :
  1. Sub Macro_Indirect_with_file_closed()
  2. With ActiveWorkbook.ActiveSheet
  3. .Cells(7, 3).Formula = "='" & .Cells(2, 3).Value & "\[" & .Cells(3, 3).Value & "]" & .Cells(4, 3).Value & "'!" & .Cells(5, 3).Value
  4. End With
  5. End Sub
Il suffit d'adapter en fonction du besoin. Ici, "Cells(7, 3)" indique que la cellule de la 7ème ligne et 3ème colonne et donc la cellule C7, c'est la cellule dans laquelle sera affichée la valeur récupérée.
De la même manière, "Cells(2, 3)" indique la cellule qui contient le chemin vers le fichier fermé (sans mettre de "\" à la fin du chemin). "Cells(3, 3)" est la cellule avec le nom du fichier fermé (en mettant bien l'extension du fichier). "Cells(4, 3)" est la cellule qui contient le nom de la feuille. Et "Cells(5, 3)" et la cellule qui contient le nomme de la cellule dans laquelle le résultat doit être récupéré.

Il faut lancer la macro à la main à chaque modification, des options existent pour lancer une macro avec un raccourci ou automatiquement, je vous laisse chercher sur les internets.
 

massol

XLDnaute Junior
Voici ce que l on m a proposé sur le forum hardware : j y regarde demain.

Code :
  1. Sub Macro_Indirect_with_file_closed()
  2. With ActiveWorkbook.ActiveSheet
  3. .Cells(7, 3).Formula = "='" & .Cells(2, 3).Value & "\[" & .Cells(3, 3).Value & "]" & .Cells(4, 3).Value & "'!" & .Cells(5, 3).Value
  4. End With
  5. End Sub
Il suffit d'adapter en fonction du besoin. Ici, "Cells(7, 3)" indique que la cellule de la 7ème ligne et 3ème colonne et donc la cellule C7, c'est la cellule dans laquelle sera affichée la valeur récupérée.
De la même manière, "Cells(2, 3)" indique la cellule qui contient le chemin vers le fichier fermé (sans mettre de "\" à la fin du chemin). "Cells(3, 3)" est la cellule avec le nom du fichier fermé (en mettant bien l'extension du fichier). "Cells(4, 3)" est la cellule qui contient le nom de la feuille. Et "Cells(5, 3)" et la cellule qui contient le nomme de la cellule dans laquelle le résultat doit être récupéré.

Il faut lancer la macro à la main à chaque modification, des options existent pour lancer une macro avec un raccourci ou automatiquement, je vous laisse chercher sur les internets.

Merci pour ta ténacité ....
 

eriiic

XLDnaute Barbatruc
Ah ben oui, autant mettre la formule directement dans la cellule si la fonction n'est pas impérative.
Si les adresses changent il faudra juste que tu relances la macro. Ca peut être fait sur un événement comme activation de la feuille.
eric
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS