Fonction indirect dans formule de calcul

Résolu
lecrol Messages postés 224 Date d'inscription   Statut Membre Dernière intervention   -  
via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  2. lecrol Messages postés 224 Date d'inscription   Statut Membre Dernière intervention   24
     
    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
  3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  4. lecrol Messages postés 224 Date d'inscription   Statut Membre Dernière intervention   24
     
    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
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Oui
      la fonction CELLULE peut renvoyer plusieurs paramètres comme l'adresse, le type ..;; voir aide Excel

      Bonne suite
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lecrol Messages postés 224 Date d'inscription   Statut Membre Dernière intervention   24
     
    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
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      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