Changer automatiquement onglet dans une formule index

Fermé
amelise Messages postés 52 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 11 novembre 2022 - 4 déc. 2013 à 06:34
 amelise - 13 déc. 2013 à 05:14
Bonjour,

Je suis une débutante sous excel donc je vais essayer de m'exprimer du mieux que je peux mais vous excuserez mes erreurs de formulation.

Alors, j'ai cette formule qui me permet d'importer des données du fichier ''Copy of PRC Mar 1 - Dec 1.xlsx''. Ce sont des données de traffic.
=IFERROR(INDEX('[Copy of PRC Mar 1 - Dec 1.xlsx]SGG'!$A$4:$CH$322,MATCH($C47103,'[Copy of PRC Mar 1 - Dec 1.xlsx]SGG'!$B$4:$B$322,0),MATCH($F47103&J$1,'[Copy of PRC Mar 1 - Dec 1.xlsx]SGG'!$A$6:$CH$6,0)),0)

Le fichier ''Copy of PRC Mar 1 - Dec 1.xlsx'', contient plusieurs onglets avec des noms différents.

Dans mon fichier qui reçoit les données, pour importer les données du fichier ''Copy of PRC Mar 1 - Dec 1.xlsx''d'un autre onglet, je change à la main le nom de l'onglet ( dans la formule, le nom de l'onglet est SGG). Ce qui me prend pas mal de temps car j'ai beaucoup de données!

Or, dans mon fichier qui reçoit les données, j'ai une colonne avec tous les noms des onglets et j'aimerais que quand j'étire ma formule vers le bas, et bien le nom de l'onglet dans la formule change en se basant sur le nom de l'onglet dans ma colonne.

Voilà je ne sais pas si c'est trés clair.
Merci de votre aide!


A voir également:

6 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
4 déc. 2013 à 08:56
Bonjour,

Tu peux utiliser la fonction INDIRECT.
Exemple avec le nom de la feuille en A1 :
=IFERROR(INDEX(INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & A1  & "'!$A$4:$CH$322"),MATCH($C47103,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & A1 & "'!$B$4:$B$322"),0),MATCH($F47103&J$1,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & A1 & "'!$A$6:$CH$6"),0)),0)

A+
0
amelise Messages postés 52 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 11 novembre 2022
4 déc. 2013 à 10:17
Merci! J'ai encore un petit pb!

Lorsque vous dites A1, vous parlez du fichier sur lequel j'importe mes données? Car les données que je reçois sont sur une fichier excel et je les importe dans un autre fichier excel.
Le nom de la feuille sur laquelle je travaille est Traffic!. Il faut que j'inscrive juste le nom de la feuille ou celui du fichier

Si je tape cela, c'est incorrect:
=IFERROR(INDEX(INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & '[20131204 dashboard V3.xlsx]Traffic'! & "'!$A$4:$CH$322"),MATCH($C47103,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & '[20131204 dashboard V3.xlsx]Traffic'! & "'!$B$4:$B$322"),0),MATCH($F47103&J$1,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & '[20131204 dashboard V3.xlsx]Traffic'! & "'!$A$6:$CH$6"),0)),0)

Et si je tape cela, c'est aussi incorrect:
=IFERROR(INDEX(INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & Traffic! & "'!$A$4:$CH$322"),MATCH($C47103,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & Traffic! & "'!$B$4:$B$322"),0),MATCH($F47103&J$1,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & Traffic! & "'!$A$6:$CH$6"),0)),0)
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
4 déc. 2013 à 10:35
Lorsque tu écris
INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & A1  & "'!$A$4:$CH$322")
Si la cellule A1 contient le nom de la feuille (SGG par exemple), la formule est équivalente à
'[Copy of PRC Mar 1 - Dec 1.xlsx]SGG'!$A$4:$CH$322

Donc, la cellule A1 de mon exemple est une cellule de la colonne avec tous les noms des onglets dans ton fichier qui reçoit les données.

A+
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
4 déc. 2013 à 11:48
Attention toutefois, la fonction INDIRECT ne marche pas si le classeur dans lequel on souhaite lire des données n'est pas ouvert.

A+
0
amelise Messages postés 52 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 11 novembre 2022
5 déc. 2013 à 05:18
Merci! je comprends. Par contre, comme je travaille sous excel en anglais, pour les guillemets, je dois bien mettre ceux là: ''

merci beaucoup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
5 déc. 2013 à 09:04
Bonjour,

Je joints un exemple avec 2 classeurs :
le classeur Base.xlsm qui contient la procédure et les paramètres de recherche,
Le classeur Copy of PRC Mar 1 - Dec 1.xlsx qui contient les éléments recherchés.

Les 2 classeurs étant ouverts, tu peux lancer le test de recherche puis regarder la syntaxe du code.

https://www.cjoint.com/c/CLfi6oDQx0M
https://www.cjoint.com/c/CLfi6XRpUwu

Pense à renommer le classeur "Copy of PRC Mar 1 - Dec 1.xlsx"

A+
0
Cela ne marche toujours pas. J'ai essayé avec la formule ci-dessous sachant que $B51076 est le numéro de la cellule qui contient le nom du magasin dans mon fichier oú j'écris la formule et qui reçoit les données.
Les données sont extraites du fichier 'Copy of PRC Mar 1 - Dec 8.xlsx.


=IFERROR(INDEX(INDIRECT($B51076&"!"&'[Copy of PRC Mar 1 - Dec 8.xlsx]SIF'!$A$4:$CH$330),MATCH($C51076,INDIRECT($B51076&"!"&'[Copy of PRC Mar 1 - Dec 8.xlsx]SIF'!$B$4:$B$330),0),MATCH($F51076&J$1,INDIRECT($B51076&"!"&'[Copy of PRC Mar 1 - Dec 8.xlsx]SIF'!$A$6:$CH$6),0)),0)

Merci pour votre aide!
0