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 14512 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 janvier 2025 - 4 janv. 2015 à 23:19
via55 Messages postés 14512 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 janvier 2025 - 4 janv. 2015 à 23:19
A voir également:
- Fonction indirect dans formule de calcul
- Fonction si et - Guide
- Calcul moyenne excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Excel mise en forme conditionnelle formule - Guide
- Formule de calcul excel - Guide
5 réponses
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 740
4 janv. 2015 à 21:33
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
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
lecrol
Messages postés
200
Date d'inscription
samedi 4 juillet 2009
Statut
Membre
Dernière intervention
25 juillet 2016
24
4 janv. 2015 à 21:45
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
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
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 740
4 janv. 2015 à 22:14
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
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
lecrol
Messages postés
200
Date d'inscription
samedi 4 juillet 2009
Statut
Membre
Dernière intervention
25 juillet 2016
24
4 janv. 2015 à 22:22
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
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
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 740
4 janv. 2015 à 22:27
4 janv. 2015 à 22:27
Oui
la fonction CELLULE peut renvoyer plusieurs paramètres comme l'adresse, le type ..;; voir aide Excel
Bonne suite
la fonction CELLULE peut renvoyer plusieurs paramètres comme l'adresse, le type ..;; voir aide Excel
Bonne suite
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
24
Modifié par lecrol le 4/01/2015 à 22:52
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
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
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 740
4 janv. 2015 à 23:19
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 !
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 !