RechercheV : Plage dans une cellule nommée

CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   -  
CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je travaille sur un fichier qui récupère en grande partie ses données grâce à des recherches V.
Mon problème réside dans le fait que la plage source des données est changeante ( le nom du classeur source peut être modifié)

Je souhaitais donc mettre le chemin et la plage du classeur source dans une cellule nommée,

de manière à modifier uniquement une cellule.

Malheureusement ça ne fonctionne pas

Auriez vous une explication ?

Par avance merci

2 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    Bonjour,

    Pour faire ce que tu souhaites, je te conseilles d'utiliser la fonction indirect.

    Pour cela voici ce que tu fais :
    tu mets par eexemple l'adresse de ton fichier dans une cellule, tu mets dans une autre ta cellule de début et dans une 3 ème ta cellule de fin

    et tu mets ta formule recherchev (attention mon excel est an anglais) :
    =VLOOKUP(A1,INDIRECT("["&H5&"]Sheet1!"&I5&":"&J5,TRUE),2,FALSE)

    voici un exemple :
    https://www.cjoint.com/c/FFkslDSL2s0
    0
    1. CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1
       
      Bonjour Melanie1324,

      Merci de ta réponse, malheureusement je ne parviens pas à la mettre en œuvre.

      Dans mon Classeur, j'ai un onglet "Mois" dans lequel j'ai indiqué les élément de la fonction indirect:

      Nom du fichier avec le chemin en I25 :

      D:\DFC\CDK\BBB\2016\Frais Pers\[Classeur 1.xlsm]3.9 onglet

      Puis en I26

      B5

      Puis en I27

      IU590

      Le classeur comporte une trentaine d onglets sur le même format.
      Ça va rechercher ( Recherche V ) des données dans un classeur rafraichit par un outil de l entreprise.

      Le problème c'est que l'outil d entreprise est très instable et donc nous sommes obligés de modifier le fichier source, donc remplacer les liens dans le cible (Cela provoque des erreur)

      C'est pourquoi j'aimerais tout réunir sur un onglet de paramétrage des liens.

      Je pense avoir compris la méthode indirecte mais j'ai un message d'erreur REF.

      Merci de ton aide
      0
  2. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Si le classeur dans lequel tu effectues la recherche est ouvert, tu n'as pas besoin de préciser le chemin et tu peux alors utiliser la fonction INDIRECT.

    Par contre, si le classeur est fermé, tu ne peux pas utiliser la fonction INDIRECT. Il faut alors regarder du coté de INDIRECT.EXT

    A+
    0
    1. CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1
       
      Bonjour

      merci de l'info, je regarde et je vous tiens au courant
      0
    2. CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1
       
      Je viens d'essayer

      j'ai une erreur nom
      0
    3. Gyrus Messages postés 3360 Statut Membre 526 > CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention  
       
      Qu'as-tu essayé au juste ?

      A+
      0
    4. CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention   1 > Gyrus Messages postés 3360 Statut Membre
       
      Bonjour

      j'ai essayé ça :

      RECHERCHEV(C9;INDIRECT.EXT("["&H2&"]Direction!"&H3&":"&H4;VRAI);2;FAUX)

      En H2

      'E:\DF\CD\BF\2016\Frais\[Classeur.xlsm]3.6 Det yc trans!

      En H3

      B5

      En H4
      IU590

      Cdt
      0
    5. Gyrus Messages postés 3360 Statut Membre 526 > CHARLYJACK Messages postés 345 Date d'inscription   Statut Membre Dernière intervention  
       
      Si je t'ai bien compris, tu souhaites utiliser FONCTION PERSONNELLE qui permette une RECHERCHEV dans un fichier FERME et incluant une fonction INDIRECT.

      Tu peux tester cette méthode développée par SilkyRoad
      https://excel.developpez.com/faq/?page=Recherche#RechercheWbFermeIndir
      (pour info, je ne suis pas parvenu à la mettre en oeuvre avec Excel 2013).

      Sinon, tu peux utiliser une macro qui va placer la formule de recherche en A1 avec les paramètres ci-dessous :
      Valeur cherchée en H1 : $C$9
      Chemin en H2 : E:\DF\CD\BF\2016\Frais\
      Classeur en H3 : Classeur1.xlsx
      Feuille en H4 : Direction
      Plage en H5 : $D$9:$E$16
      Sub RECHERCHER()
      Dim ValeurCherchée As String, Chemin As String, Classeur As String, Feuille As String
      Dim Plage As String, Formule As String, V As String
      ValeurCherchée = Range("H1").Value
      Chemin = Range("H2").Value
      Classeur = Range("H3").Value
      Feuille = Range("H4").Value
      Plage = Range("H5").Value
      ActiveSheet.Range("A1").ClearContents
      ActiveSheet.Range("A1").Formula = "=VLOOKUP(" & ValeurCherchée & ",'" & Chemin & "[" & Classeur & "]" & Feuille & "'!" & Plage & ",2,FALSE)"
      End Sub


      A+
      0