Lien Dynamique en fonction d'un choix?

Bonjour

je suis sous Excel 2013

Dans le répertoire C:\Users\Report\, j'ai des fichiers à structure identique (GROUPE.xlsx, CANADA.xlsx, EUROPE.xlsx...)

Dans un nouveau classeur "ANALYSE.xlsx", j'ai créé en E2 une liste déroulante des pays (GROUPE, CANADA, EUROPE, ...) qui correspondent à ces fameux fichiers

En fonction du choix de cette liste déroulante, je voudrai que la formule en F3 puisse se mettre à jour automatiquement

Exemple :

si je choisis "GROUPE" dans la liste déroulante, la cellule F3 me renverrait le résultat de la formule suivante :

=INDEX('C:\Users\Report\[REPORT GROUPE.xlsx]TCD'!$B$3:$XFD$1048576;

EQUIV($E3;'C:\Users\Report\[REPORT GROUPE.xlsx]TCD'!$A$3:$A$1048576;0);

EQUIV(F$2;'C:\Users\Report\[REPORT GROUPE.xlsx]TCD'!$B$2:$XFD$2;0))

Si je voulais voir la même chose pour CANADA, ca donnerait automatiquement et dynamiquement :

=INDEX('C:\Users\Report\[REPORT CANADA.xlsx]TCD'!$B$3:$XFD$1048576;

EQUIV($E3;'C:\Users\Report\[REPORT CANADA.xlsx]TCD'!$A$3:$A$1048576;0);

EQUIV(F$2;'C:\Users\Report\[REPORT CANADA.xlsx]TCD'!$B$2:$XFD$2;0))

je sèche complètement sur le sujet

ca parle à quelqu'un d'entre vous?

Bonjour!

À vérifier, mais sachez que la fonction INDIRECT ne marche que lorsque la feuille source soit ouverte.

Il faut dire aussi que ce n’est vraiment pas la meilleure pratique de référencer les colonnes entières comme ça (jusqu’à XFD) – vous avez vraiment des données jusqu’à la dernier colonne en Excel (soit 16384 colonnes)?!?

=INDEX(INDIRECT("'C:\Users\Report\[REPORT "&E2&".xlsx]TCD'!$B$3:$XFD$1048576");EQUIV($E3;INDIRECT("'C:\Users\Report\[REPORT "&E2&".xlsx]TCD'!$B$3:$XFD$1048576");0);EQUIV(F$2;INDIRECT("'C:\Users\Report\[REPORT "&E2&".xlsx]TCD'!$B$3:$XFD$1048576");0))

Cordialement

c'est exactement l'esprit du résultat attendu merci!

voilà ce que ca donne :

=INDEX(INDIRECT("'C:\Users\Report\[REPORT "&$E$2&".xlsx]TCD'!$B$3:$XFD$1048576");

EQUIV($E3;INDIRECT("'C:\Users\Report\[REPORT "&$E$2&".xlsx]TCD'!$A$3:$A$1048576");0);

EQUIV(F$2;INDIRECT("'C:\Users\Report\[REPORT "&$E$2&".xlsx]TCD'!$B$2:$XFD$2");0))

effectivement, INDIRECT(xxx) impose que la feuille source soit ouverte, sinon le résultat retourné = #REF

et comme j'ai 22 fichiers différents dans le dossier, ça ne rend pas cette solution super pratique

est-ce qu'il y a une alternative à INDIRECT(xxx) qui va chercher en plus le résultat dans le fichier sans l'ouvrir?

ou alors un moyen via une macro?

Re-bonjour!

Peut-être qu’il existe une solution VBA, oui, mais là, malheureusement, je ne pourrai pas vous aider.

J’ai entendu parler de la fonction ‘Add-In’ Morefunc et la fonction PULL de Harlan Grove, mais je ne suis pas sûr d’où les télécharger, ni comment les opérer.

Vous êtes sur de ne pas pouvoir mettre ces autres classeur dans votre classeur principal ?

Cordialement

chaque fichier pesant entre 5 et 6 mo, je préfère les laisser en dehors du classeur principal

j'ai rajouté une petite macro qui permet d'ouvrir le fichier et de le refermer immédiatement

ca permet de donner les valeurs

Sub fichier()

Set Wb = Workbooks.Open("REPORT " & Range("E2").Value)

Wb.Close False

End Sub

comment faire pour que la macro s'exécute immédiatement et automatiquement dès que j'ai sélectionné un pays dans ma liste en E2?

Rechercher des sujets similaires à "lien dynamique fonction choix"