Fonction indirect dans formule de calcul

Résolu/Fermé
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 - 4 janv. 2015 à 20:46
via55 Messages postés 14041 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 février 2023 - 4 janv. 2015 à 23:19
Bonjour,

J'ai besoin de lumières, svp

Je travaille entre deux dossiers qui ont chacun 12 feuilles du même nom, de janvier à décembre
Je travaille sur deux dossiers qui ont chacun 12 feuilles du même nom, de janvier à décembre
Pour ne pas changer 12 fois mes formules de calcul, j'aimerais utiliser le nom de la feuille par la fonction indirect (le nom de l'onglet serait placé en B1, par exemple, avec un indirect ("B1")

Entre les quottes et les doubles quottes, je bataille depuis plusieurs jours et je ne trouve pas la syntaxe correcte.

Voici la formule la plus complexe que j'utilise de feuille à feuille, entre les deux dossiers :

=SI('[Rl-2015- Base Access (1).xls]Janvier'!E3<>"";'[Rl-2015- Base Access (1).xls]Janvier'!E3;"")

Merci de votre dépannage
Cordialement,
Roland

5 réponses

via55 Messages postés 14041 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 février 2023 2 552
4 janv. 2015 à 21:33
Bonsoir Roland

En B1 : '[Rl-2015- Base Access (1).xls]

Formule :
=INDIRECT(B1 & "Janvier'!E3") pour avoir la valeur de E3

ou si tu veux récupérer Janvier dans le nom de l'onglet :

=INDIRECT(B1& DROITE(CELLULE("nomfichier");NBCAR(CELLULE("nomfichier"))-TROUVE("]";CELLULE("nomfichier"))) &"'!E3")

Cdlmnt
0
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 23
4 janv. 2015 à 21:45
Super ! C'est tout con mais j'aurais du y penser Mettre le chemin complet avec le nom de feuille concerné dans B1 pour le récupérer avec un indirect.

Je mets bien une quotte au début et à la fin ? Ainsi : '[Rl-2015- Base Access (1).xls]'


Bravo et merci

Par contre, je ne pige pas ta seconde formule.
C'est vrai que ça serait plus sioux de récupérer directement le nom de feuille départ et arrivée, en fait le même ! Mais ça, je ne sais pas faire dans une formule (en VBA, je saurais mais ça ne me convient pas)

Peux-tu, stp, m'expliquer ta seconde formule ?

Je suppose que en "nomfichier", je mettrai " '[Rl-2015- Base Access (1).xls]' " Exact ? Mais je ne pige pas plus le restant de la formule .

Merci encore de tes lumières
Roland
0
via55 Messages postés 14041 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 février 2023 2 552
4 janv. 2015 à 22:14
Re

1) l'apostrophe se met en début mais pas à la fin car elle ne vient qu'après le nom de la feuille et avant le !. On la retrouve là dans mes formules :
& "Janvier'!E3" ou &"'!E3"

2) la fonction CELLULE("nomfichier") renvoie le nom complet du fichier avec son chemin de la feuille dans laquelle on est
par exemple : D:\EXCEL\Macros\[extractionBase.xlsm]Feuil1
Comme le nom de la feuille est en dernier après le ] je l'extrait avec
DROITE(CELLULE("nomfichier");NBCAR(CELLULE("nomfichier"))-TROUVE("]";CELLULE("nomfichier")))
qui prend les x caractères à droite du nom du fichier , le x étant calculé en soustrayant du nombre de caracteres total ( NBCAR(CELLULE("nomfichier") ) la position du ] trouvée par TROUVE("]";CELLULE("nomfichier"))

Cdlmnt
0
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 23
4 janv. 2015 à 22:22
Merci.
C'est très clair, très précis et ... super rapide !!
Chapeau et bravo

Si je comprends bien, "nom fichier" est une constante excel, donc. Exact ?

J'essaie tout ça et je te tiens au courant
Mais encore merci.

Roland
0
via55 Messages postés 14041 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 février 2023 2 552
4 janv. 2015 à 22:27
Oui
la fonction CELLULE peut renvoyer plusieurs paramètres comme l'adresse, le type ..;; voir aide Excel

Bonne suite
0

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

Posez votre question
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 23
Modifié par lecrol le 4/01/2015 à 22:52
Je n'ai pas fini de bidouiller, à mon avis

Le pb est d'intégrer, avec les bonnes quottes et double quottes, une formule comme
INDIRECT(B1 & "Janvier'!"), qui me donne le nom dossier et feuille

dans ma formule de base:
=SI('D:\RL_Donnees\La République\Notes de frais\Notes de frais 2015\[Rl-2015- Base Access (1).xls]Janvier'!E3<>"";'D:\RL_Donnees\La République\Notes de frais\Notes de frais 2015\[Rl-2015- Base Access (1).xls]Janvier'!E3;"")

ET je n'ose pas penser à celle qui, une fois intégrée (correctement), me donnerait en plus le nom de l'onglet : INDIRECT(B1& DROITE(CELLULE("nomfichier");NBCAR(CELLULE("nomfichier"))-TROUVE("]";CELLULE("nomfichier"))) &"'!E3")

Un vrai casse-tête !
Mais je ne désespère pas.
Encore merci de ta gentillesse
Roland
0
via55 Messages postés 14041 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 février 2023 2 552
4 janv. 2015 à 23:19
Décompose , de plus ça permet de plus facilement retrouver les erreurs :

En B1 : 'D:\RL_Donnees\La République\Notes de frais\Notes de frais 2015\[Rl-2015- Base Access (1).xls]

En B2: DROITE(CELLULE("nomfichier");NBCAR(CELLULE("nomfichier"))-TROUVE("]";CELLULE("nomfichier")))

Formule : SI(INDIRECT(B1 & B2 & "'!E3")<>"";INDIRECT(B1 & B2 & "'!E3");"")

Courage !
0