Microsoft 365 Référence à une cellule selon valeur d'une autre

Facom76

XLDnaute Nouveau
Bonjour, Je suis novice, c'est ma première intervention sur ce forum.
J'ai deux classeurs : ANALYSE.xlsm et EXEMPLE.xsx
A partir du classeur ANALYSE, je cherche à récupérer une valeur du tableau EXEMPLE. J'ai donc en llule A6 la formule =[EXEMPLE.xlsx]S13!$A2.
Je souhaiterais trouver la syntaxe ou la formule qui me permettrait de remplacer le "S13" de cette formule par la valeur de la cellule B2 (Qui est aussi à "S13" pour l'onglet en question) mais que je voudrais modifier par la suite et que mes formules suivent... et ainsi de suite.
Je remercie d'avance tous les contributeurs.
 

Pièces jointes

  • ANALYSE.xlsm
    28.5 KB · Affichages: 10
  • EXEMPLE.xlsx
    14.9 KB · Affichages: 6
Solution
Bonjour Facom,
On peut "reconstruire" une adresse avec Indirect :
Par ex dans votre fichier en A11, cela ferait :
VB:
=INDIRECT("'[EXEMPLE.xlsx]"&B2&"'!$A7")
( toujours faire attention à la syntaxe. Le mieux dans une cellule est de faire = puis aller chercher la cellule désirée ce qui donne la bonne syntaxe, par ex en A7 du fichier cible cela donne :
Code:
='[EXEMPLE (29).xlsx]S13'!$A$7
donc avec les petites apostrophes avant et après le nom fichier et feuille.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Facom,
On peut "reconstruire" une adresse avec Indirect :
Par ex dans votre fichier en A11, cela ferait :
VB:
=INDIRECT("'[EXEMPLE.xlsx]"&B2&"'!$A7")
( toujours faire attention à la syntaxe. Le mieux dans une cellule est de faire = puis aller chercher la cellule désirée ce qui donne la bonne syntaxe, par ex en A7 du fichier cible cela donne :
Code:
='[EXEMPLE (29).xlsx]S13'!$A$7
donc avec les petites apostrophes avant et après le nom fichier et feuille.
 

Facom76

XLDnaute Nouveau
Bonjour Facom,
On peut "reconstruire" une adresse avec Indirect :
Par ex dans votre fichier en A11, cela ferait :
VB:
=INDIRECT("'[EXEMPLE.xlsx]"&B2&"'!$A7")
( toujours faire attention à la syntaxe. Le mieux dans une cellule est de faire = puis aller chercher la cellule désirée ce qui donne la bonne syntaxe, par ex en A7 du fichier cible cela donne :
Code:
='[EXEMPLE (29).xlsx]S13'!$A$7
donc avec les petites apostrophes avant et après le nom fichier et feuille.
Merci beaucoup Sylvanu, cela fonctionne parfaitement ! Je n'étais pas loin, mais n'ayant aucune base, entre les guillemets et les apostrophes j'étais perdu. Il ne me reste plus qu'à trouver comment étirer cette formule vers le bas car l'incrémentation sur le N° de ligne ne se fait pas. (les guillemets certainement?).
Encore MERCI !
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour tout le monde,
Pour "étirer" vers le bas, il faut rendre le N° de ligne dynamique. Pour cela il existe LIGNE() qui donne le N° de ligne de la cellule.
Donc la formule pourrait être :
VB:
=INDIRECT("'[EXEMPLE.xlsx]"&B2&"'!$A"&(LIGNE()-x))
Le x est l'offset qui ramène à la bonne ligne.
Imaginons que cette formule soit en A10 et qu'on veuille pointer en A7. LIGNE()=10 donc x=3, puisque 10-3=7.
 

Discussions similaires

Statistiques des forums

Discussions
315 149
Messages
2 116 780
Membres
112 859
dernier inscrit
patricekangourou