[Excel] Interactions entre classeurs

Résolu
Guitou2804 -  
 Guitou2804 -
Bonjour,

Je souhaiterais appliquer les fonctions INDEX/EQUIV dans un classeur de la manière suivante :

Dans le classeur A j'ai un récap des prix de chaque bon de commande réalisé, en fonction de la date.
Dans le classeur B je fait un récap des facturations en faisant appel donc à ces dits prix en fonction de la date.

J'arrive très bien à utliser les deux fonctions pour rappeler le prix en fonction de la date qui est ma valeur recherchée dans le tableau B, seulement ce sont des classeurs qui vont changer de noms chaque année, puisqu'il s'agit de récaps annuels...

Ainsi je voudrais trouver le moyen de taper la formule dans la colonne qui rappelle les prix, de manière à ce que je puisse copier coller ce classeur à chaque nouvel an, et que je n'ai à modifier qu'une cellule par exemple ou je taperai 2012 puis 2013 pour qu'ensuite la formule rappelant les prix voit le nom du classeur A (dans lequel je fais référence à l'année bien sur...) se modifier aussi...

Je ne sais pas si j'ai étais assez clair, dans tous les cas je vous remercie d'avance pour vos réponses et reste disponible, ma requête étant assez urgente!

Guillaume.



A voir également:

2 réponses

Vaucluse Messages postés 27336 Statut Contributeur 6 441
 
Bonjour
utilisez le code INDIRECT par exemple à adapter:
si votre formule est:
=RECHERCHEV(date;'[classeur1.xls]feuille1'!$A$1:$B$100;2;0)
écrivez:
=RECHERCHEV(date;INDIRECT("'["&A1&".xls]feuille1'!A1:B100";2;0)
en plaçant le nom du classeur chercher en A1, vous pourrez changer de classeur selon ce nom.
attention aux signes,vous pouvez aussi si pour simplifier les formules utiliser une cellule intermédiaire:
en A1 le nom du classeur
en B1 , vous construisez le texte correspondant à l'adresse:
="'["&A1&".xls]feuille1'!A1:B100"
le libellé complet s'inscrit dans la cellule
votre formule devient:
=RECHERCHEV(date;INDIRECT(B1);2;0)

qui fonctionne si le texte est bien construit avec le classeur inscrit en A1

En aparté pour faire plus simple, vous pouvez
copier le classeur
sélectionner le champ de formule
remplacer:
nom de l'ancien classeur
par:
nom du nouveau

crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
Guitou2804
 
C'est exactement l'idée que j'avais, juste oublié la fonction INDIRECT, par contre si on part du principe que le nom du classeur est "Demande sous-traitance IPL - 2011", la seule variable sera 2011 puis 2012 etc, peut on simplifier la chose en tapant dans A1 comme vous me l'avez expliqué, l'année ?.

Au passage, l'adresse du classeur est nécessaire dès l'instant ou les deux classeurs ne sont pas dans le meme dossier ou comment ça se passe ?
0
Vaucluse Messages postés 27336 Statut Contributeur 6 441
 
Re
pour changer uniquement le nom de l'année:
entrer l'année en A1
en B1, ou directement dans le code INDIRECT dans les formules.en rajoutant les signes nécessaires:
="'[Demande sous-traitance IPL -"&A1&"]feuil1'!A1:B100"
les guillemets isolent les textes, les signes & concaténent les valeurs de cellules avec ces textes.
pour le reste, je ne sais pas vous répondre.0 priori l'adresse du classeur est nécessaire dans tous les cas où l'on change de classeur, c'est le chemin du dossier qui se rajoute si les deux classeurs ne sont pas dans le même dossier
crdlmnt
0
Guitou2804
 
Oui pardon par addresse j'entendais chemin, je suis un peu fatigué là... Je vais essayerdès que possible
0
Guitou2804
 
Je ne comprends pas, ça me mets bien l'adresse de mon classeur dans la formule, mais j'ai une erreur #REF...
0
Vaucluse Messages postés 27336 Statut Contributeur 6 441
 
alors c'est que l'adresse n'est pas écrite correctement
pouvez vous mettre dans un prochain message le libellé de la formule et, si vous utilisez une cellule de renvoi, le résultat de celle ci.
crdlmnt.
0
Guitou2804
 
Non ca y est j'ai trouvé le pourquoi du comment, effectivement dans un premier temps c'était une coquille de ma part, et ensuite, en fait il me faut ouvrir le fichier demandé pour que les valeurs se mettent à jour !
0