[excel]

Bonjour,
j'aimerais savoir comment créer lien dans excel qui fasse appelle à un fichier "variable", c'est à dire faisant référence à une cellule du classeurun , par exemple si dans une cellule j'ai taper nom, et dans une autre test, je voudrais ouvrir le fichier nom.test.xls par exemple.
Par avance merci.

7 réponses

  1. bonsoir,

    dans la cellule qui doit recevoir la valeur, tu tapes :
    ='le_chemin_du_fichier_que_tu_veux_ouvir\[le_nom_du_fichier]le_nom_de_la_feuille'!la_référence_de_la_cellule
    ** attention à l'apostrophe (juste après le = ...et après le nom de la feuille)
    ** et aux crochets [] pour le nom du fichier

    ex :='D:\Documents and Settings\Jean-Pierre\Mes Documents\[Test.xls]Feuil1'!$B$4

    ai-je bien répondu ? :))

    -------------------------------
    ... WinErr 01B : Erreur illégale - Windows ne vous a pas autorisé à avoir cette erreur
    1. bonsoir,

      voilà un bout de code qui devrait convenir :
      Sub ouvre_fichier()
          Workbooks.Open Filename:=Range("a1").Value & "." & Range("b1").Value & ".xls"
      End Sub
      Tu mets la première partie de ton nom en A1 et la deuxième partie en B1.
      Tu n'as plus qu'à lancer cette macro.

      Je considère que le fichier que tu veux ouvrir est dans le même répertoire que celui qui contient le nom.

      A+
      1. merci jpdeclermont, mais ceci ne fonctionne pas si j'indique une cellule comme nom de fichier.
        merci ausi jvdo, mais je ne veux pas ouvrir le fichier mais aller chercher le résultat d'une cellule dans un autre fichier (je n'ai pe pas compris car en plus je n'arrive pas à faire fonctionner ta macro)
        si vous avez des compléments d'info merci d'avnce.
        1. bonsoir,

          désolé de te contredire, mais ça fonctionne .... je récupère régulièrement (tous les jous en fait) la valeur d'une cellule dans un autre classeur

          -------------------------------
          ... WinErr 01B : Erreur illégale - Windows ne vous a pas autorisé à avoir cette erreur
      2. re-

        ceci ne fonctionne pas si j'indique une cellule comme nom de fichier
        dans la cellule qui doit recevoir la valeur, il faut indiquer le chemin complet d'accès au fichier, le nom du fichier, le nom de la feuille et la cellule concernée...
        ** attention au ! avant la référence cellule et au $ (référence absolue)

        -------------------------------
        ... WinErr 01B : Erreur illégale - Windows ne vous a pas autorisé à avoir cette erreur
        1. ne t'énerve pas jp, je suis déjà content de l'aide par contre je pense que tu n'as pas compris mon probleme, un exemple concret dans une feuille je place en A1 : nom; en B1 : prenom; je souhaite lire en C1 la cellule D4 (par exemple) du fichier nom.prenom.xls
          voilà, si tu sais faire merci de ton aide
        2. bonsoir,

          j'avoue que pour moi non plus, ça ne marche pas.
          ça marche très bien quand on écrit le nom complet du fichier, mais ça ne marche plus quand on y insère une formule qui calcule le nom du fichier.

          A+
        3. bonsoir,

          si tu as besoin de la valeur d'une cellule d'un fichier fermé dans une macro, tu peux envisager d'utiliser la fonction getvalue(path, file,sheet,ref) de John Walkenbach( http://j-walk.com/ss/excel/tips/tip82.htm)

          elle n'est pas utilisable dans une formule de feuille de calcul mais tu peux t'arranger pour que ta macro écrive dans la cellule qui t'intéresse le résultat du getvalue.

          ici : http://cjoint.com/?bDx7wyo6QU tu trouveras 2 façon de faire, par macro l'une façon JP, l'autre façon getvalue.

          A+
      3. ok merci beucoup ça fonctionne !!!

        par contre, j'avais oublié qu'au boulot c'est pas excel mais open office et maintenant la macro n'est pas compatible et donc ne fonctionne pas, si vous êtes un pro de open office je suis preneur.
        1. hé non! je ne connais pas !

          il doit sûrement y avoir des poilus du sujet sur le forum.

          il faudra peut-être reformuler la demande pour les attirer.

          A+