[excel] recuperer nom fichier par cellule

Fermé
jean - 26 juin 2006 à 17:15
 didier_ben_31 - 9 nov. 2007 à 16:08
bonjour tout le monde,
j ai un petit pb (gros en fait vu le temps que j ai passe dessus) et si quelqu 'un pouvait m'aider cela serait vraiment gentil et appreciable.
Disons par exemple que j ai trois fichiers bateau.xls et jean.xls et nadine.xls et pierre.xls.

Dans le fichier bateau les cellules de la colonne A peuvent prendre les valeurs jean ou nadine ou pierre. La colonne B de ce meme fichier contient un ID (identifiant unique qui premet de reperer une ligne et d'eviter d'avoir deux lignes identiques).
les fichiers jean nadine et pierre contiennent eux dans la colonne B les memes ID mais forcement dans le meme ordre.
voici une formulation de mon pb en exemple:
prenons la ligne 5 du fichier bateau
si A5 contient jean alors je veux remplir la cellule C5 du fichier bateau avec la valeur de la cellule C5 du fichier jean
si A5 contient nadine alors je veux remplir la cellule C5 du fichier bateau avec la valeur de la cellule C5 du fichier nadine
de meme pour pierre

voici ce a quoi j ai pense:
utiliser en premier lieu la fonction index tel que suit pour avoir la valeur de la cellule C5 =index(plage c du fichier source; equiv(B5;plage B du fichier source;0);0)
-l utilisation de la fonction index n est pas primordiale pour moi donc si vous avez une autre fonction je ne suis pas contre-
le pb a resoudre est donc comment determiner le fichier source
Je me suis dit que le mieux est d utiliser la cellule A5 qui contient le nom du fichier source
ma fonction index aurait alors cette tete la (enfin c est ce que je voudrais)
=index('A5.xls'!$C:$C;equiv(B5;'A5.xls'!$B:$B;0);0)
A5 contenant par exemple jean cela me permettrait de pomper l information a partir du fichier jean.xls
mais je n arrive pas a faire accepter a excel le premier argument comme etant une reference a la plage d un fichier

une autre idee qui m est venue est de faire une liste de choix: jean, pierre ou nadine. quand l utilisateur fait son choix la bonne fonction avec la reference au bon fichier est alors implementee. mais je n arrive pas a faire le lien entre les cellules (je veux dire que je sai faire la liste de choix mais je ne sais pas comment lier les formules a utiliser aux differents choix)

voili voilou
je vous remercie pour votre patience et pour l eventuelle aide que vous m apprterez. si vous avez besoin de plus de details n hesitez pas.
ciao.
A voir également:

4 réponses

Bonjour,

ouvrez Excel, cellule A11 mettez "1" ou n'importe quoi ^^
Puis ceci là où vous désirez le nom du fichier.

Il doit être sauvegardé sur le disque (le fichier) pour que la formule affiche qqchose.


=GAUCHE(STXT((CELLULE("filename";A11));CHERCHE("[";(CELLULE("filename";A11));1)+1;(CHERCHE("]";(CELLULE("filename";A11));1)));CHERCHE(".";STXT((CELLULE("filename";A11));CHERCHE("[";(CELLULE("filename";A11));1)+1;(CHERCHE("]";(CELLULE("filename";A11));1)));1)-1)


Voilou ;)
4
Sergio63 Messages postés 53 Date d'inscription lundi 12 décembre 2005 Statut Membre Dernière intervention 9 juin 2011 24
27 juin 2006 à 17:55
Bonjour,

Pour déduire le nom du fichier du contenu d'une cellule, il faut utiliser la fonction "Indirect"

A la place de la formule :
=index('A5.xls'!$C:$C;equiv(B5;'A5.xls'!$B:$B;0);0)

utilise celle-ci :

=INDEX(INDIRECT("[" & A5 & ".xls]Feuil1!$C:$C");EQUIV(B5;INDIRECT("[" & A5 & ".xls]Feuil1!$B:$B");0);0)

ATTENTION : La fonction Indirect présente un inconvénient : Si le fichier cible n'est pas ouvert, elle ne fonctionne pas (pour des raisons de verrouillage) et renvoi le code erreur #REF!

2 solutions :
1) Ouvrir les fichiers cibles jean.xls nadine.xls .... en même temps que le fichier bateaux (cela peut être automatisé avec une macro à l'ouverture du fichier Bateaux.xls)

2) Si le contenu de tes différents fichiers n'est pas trop important, plutôt que d'avoir plusieurs fichiers, créer un seul classeur avec plusieurs onglets : Bateaux, Jean, Nadine ...
La fonction Indirect peut également s'appliquer aux onglets et là plus de problème d'ouverture.

j'espère que ces quelques conseils te seront utiles.

Cordialement

Sergio
0
didier_ben_31
9 nov. 2007 à 16:06
Bonjour,

Je suis tout nouveau sur ce site et voilà mon problème. Je tente de créer une petite base de données sur XL.

J'ai donc consulté le message de SERGIO et je l'en remercie pour son aide.

Pourrait-il, m'expilquer comment puis-je appliquer la fonction INDIRECT sur le nom de la feuille plutôt que sur le nom du classeur XL, dans le cadre d'un INDEX/EQUIV?
En effet, la fonction INDIRECT présente le désavantage d'afficher #REF quand le fichier source est fermé.

Merci d'avance et à très bientôt.
0
didier_ben_31
9 nov. 2007 à 16:08
Bonjour,

Je suis tout nouveau sur ce site et voilà mon problème. Je tente de créer une petite base de données sur XL.

J'ai donc consulté le message de SERGIO et je l'en remercie pour son aide.

Pourrait-il, m'expilquer comment puis-je appliquer la fonction INDIRECT sur le nom de la feuille plutôt que sur le nom du classeur XL, dans le cadre d'un INDEX/EQUIV?
En effet, la fonction INDIRECT présente le désavantage d'afficher #REF quand le fichier source est fermé.

Je suis joignable au 06.62.53.14.72 ou sur didierbentolila@yahoo.fr

Merci d'avance et à très bientôt.
0