Construire des références vers autre fichier avec diff valeurs de cellule
Bonjour,
J'ai un fichier excel de destination (A.xlsx) et des fichiers sources (B.xlsx et C.xlsx).
A contient une feuille dont la première colonne liste les noms des feuilles de B.xlsx et C.xlsx où aller chercher les valeurs à afficher sur les colonnes suivantes.
B et C contiennent plusieurs feuilles avec des données sur chaque feuille.
Dans la seconde colonne et les suivantes de A je voulais utiliser le type de formule suivante :
( par exemple pour affiche la valeur B2 de la feuille 01-23 du fichier source B.xlsx) =CONCATENER("='[B.xlsx]";$A2;"'!B$2")
En effet la cellule A2 du fichier A.xlsx contient la valeur 01-23
Or au lieu d'avoir la valeur B2 de la feuille 01-23 du fichier source B.xlsx qui s'affiche, j'ai dans la cellule la valeur ='[B.xlsx]01-23'!B$2
Comment faire comprendre à excel que ce n'est pas une ligne de texte mais bien une référence vers un autre fichier et que je veux qu'il récupère la valeur du fichier source ?
J'espère que mes explications sont claires, je joins les fichiers A.xlsx / B.xlsx / C.xlsx à ma demande
Merci d'avance pour votre aide
Nicolas
Bonjour
Ce que tu décrit se fait avec la fonction INDIRECT mais elle ne fonctionne pas avec des fichiers fermés
Depuis la version 2010 on dispose de PowerQuery pour synthétiser des classeurs
On privilégie aussi depuis la version 2003 l'utilisation des tableaux structurés...
A noter que 2023 n'est pas une version d'Excel mais une révision des version 2019, 2021, 365... Merci de vérifier et mettre ton profil à jour.
On peut obtenir cela pour synthétiser tous les onglets de tous les classeurs de type b ou c placés dans un dossier
Selon les règles en vigueur on ne met pas de ligne vides mais c'est nénmoins faisable
Bonjour,
Merci 78chris pour ta réponse rapide.
J'ai simplifié les fichiers avec lesquels je travaille pour rendre mon problème plus compréhensible, et du coup j'ai bien peur que PowerQuery ne soit pas très adapté à mon besoin réel pour les raisons suivantes :
- les fichiers B.xlsx et C.xlsx sont en fait des enregistrements en .xls de fichiers .ods donc sans tableaux structurés
- ces fichiers sont modifiés fréquemment avec des ajouts de lignes
- Ils contiennent des lignes et colonnes de données que je ne souhaite pas extraire
- ma formule de recherche dans le fichier A est plus complexe que la description simplifiée que j'ai faite (destinée à faire le focus sur le problème d'adressage des feuilles d'une source externe par une valeur stockée dans une cellule)
les formules sont du type SI.NON.DISP(INDEX([B.xls]10-22'!$D$1:$BA$199;EQUIV("totaux ";[B.xls]10-22'!$D$1:$D$200;0);EQUIV(CONCATENER(B$2;" ";$A$1);[B.xls]10-22'!$D$1:$BA$1;0));0) où je voulais remplace le nom de la feuille 10-22 par la référence à la valeur de la cellule de A.xlsx qui contient cette valeur 10-22
Je souhaite que les modifs des fichiers B et C soient pris en compte à chaque ouverture de A et j'ai l'impression qu'avec PowerQuery je serais obligé de redéfinir à chaque fois les données que je souhaite synthétiser (peut-être que je me trompe sur ce point).
N'y a-t-il vraiment plus de moyen de régler cela directement avec des formules ?
Nicolas
RE
- les fichiers B.xlsx et C.xlsx sont en fait des enregistrements en .xls de fichiers .ods donc sans tableaux structurés
Je suis partie des fichiers en l'état donc sans tableaux strucurés
- ces fichiers sont modifiés fréquemment avec des ajouts de lignes
Je souhaite que les modifs des fichiers B et C soient pris en compte à chaque ouverture de A et j'ai l'impression qu'avec PowerQuery je serais obligé de redéfinir à chaque fois les données que je souhaite synthétiser (peut-être que je me trompe sur ce point).
Justement tout cela est automatiquement géré par PowerQuery
- Ils contiennent des lignes et colonnes de données que je ne souhaite pas extraire
- ma formule de recherche dans le fichier A est plus complexe que la description simplifiée que j'ai faite (destinée à faire le focus sur le problème d'adressage des feuilles d'une source externe par une valeur stockée dans une cellule)
Quelle que soit la méthode de traitement il faudrait au moins un exemple représentatif pour t'aider
Là toi comme nous perdons bêtement du temps...
N'y a-t-il vraiment plus de moyen de régler cela directement avec des formules ?
Comme je l'ai dit pour des noms de classeurs externes INDIRECT nécessite que ces classeurs soient ouverts donc non.
Solution intermédiaire : récupérer un résultat PowerQuery plus simple dans une feuille du classeur et l'exploiter par formule dans une autre