Récupération données chemin variable

Bishop -  
jihelge Messages postés 75 Statut Membre -
Bonjour,

Mon problème est le suivant :

j'aimerais récupérer les données d'une cellule d'un autre classeur pour les mettre dans une cellule de mon classeur.
le hic, c'est que le chemin varie en fonction de certaines données ainsi que le nom de fichier

\\ordi\rep1\"repertoire variable"\"nomdefichiervariable.xls"

Un bout de code :
-------------------------------------------------------------
Dim chemin As String
Dim fclient As String
chemin = Feuil1.Cells(5, 8)
fclient = Feuil1.Cells(17, 3)

Range("A6") = chemin & fclient
-------------------------------------------------------------

Soit chemin = \\ordi\rep1\
et fclient = repertoire variable\[nomdefichiervariable.xls]Feuil1'!A1

Dans ma cellule de destination il me met \\ordi\rep1\repertoire variable\[nomdefichiervariable.xls]Feuil1'!A1

Merci de votre aide
Configuration: Windows XP
Internet Explorer 7.0

9 réponses

  1. Bishop
     
    ok

    j'ai du mal à expliquer, et la fin est pas trés compréhensible, désolé

    Je veux la cellule A1 du fichier "nomdefichiervariable.xls"

    ce nom de fichier est dans une cellule excel de ma feuille et est généré en fonction de certaines données

    A la fin, au lieu de me renvoyer la valeur de A1.

    Il me renvoie "\\ordi\rep1\repertoire variable\[nomdefichiervariable.xls]Feuil1'!A1"

    c'est mieux ?
    0
    1. jihelge Messages postés 75 Statut Membre 7
       
      en fait à la fin dans la cellule réceptrice tu ne trouve pas le contenu de la cellule A1
      de la feuille : Feuil1
      du fichier : nomdefichiervariable.xls
      dans le répertoire : repertoire variable
      dans le repertoire : rep1
      sur la machine : ordi

      mais la chaine représentant cet accès soit :

      \\ordi\rep1\repertoire variable\[nomdefichiervariable.xls]Feuil1'!A1

      As tu pensé à mettre dans la cellule ciible un "=" devant le chemin ?

      A+
      -1
  2. Bishop
     
    Oui c'est exactement ça !

    alors je mets le = dans la cellule correspondant au chemin, car je n'en avais effectivement pas mit dans la cellule cible

    et quand je lance le fichier, j'ai l'erreur d'exécution '13' sur la ligne : Range("A6") = chemin & fclient

    Merci de ta patience :p
    0
  3. Bishop
     
    bah déjà j'essaye avec c: et ça ne marche pas avec ou sans '

    hum, comment ferais-tu en reprenant depuis le début...

    cellule avec chemin : ='c:\rep1\

    cellule avec variable : repertoire variable\[nomfichiervariable.xls]Feuil1!A1

    ou un concatener avec la totalité : ='c:\rep1\repertoire variable\[nomfichiervariable.xls]Feuil1!A1 ???

    merci
    0
  4. Bishop
     
    j'ai trouvé :p

    je cherchais en vb depuis le début, mais il faut tout de même passer par les cellules excel car c'est là que mon fichier créé et stock le nom de fichier variable...

    j'ai tout repris et tout redéfini en m'inspirant d'un autre site (en espèrant ne pas dire de bêtises...)

    Private Sub workbook_open()

    fPath = Range("H5")
    fName = Range("H6")
    sName = "Feuil1"
    cell = "A1"

    Range("A8") = "='" & fPath & "\[" & fName & "]" & sName & "'!" & cell

    End Sub

    Merci de votre aide
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jihelge Messages postés 75 Statut Membre 7
     
    Peux tu nous réécrire tous ça en évitant de mélanger texte libre en langage naturel et codage VB

    car je n'ai pas bien compris la fin et donc je ne comprends pas ton souci

    A+
    -1
  7. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    après essais je pense qu'il faut ajouter une apostrophe après le =
    ='\\ordi\rep1\repertoire variable\[nomdefichiervariable.xls]Feuil1'!A1
    Pour autant que le chemin soit valable, de plus je me demande si c'est possible de lire dans un classeur fermer en passant par le réseau. ?
    A+
    -1
  8. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Je suis parvenu à valider la formule mais c'est pas fort pratique, enfin ce n'est qu'une piste

    Dans la cellule Chemin '='c:\rep1\ .. remarque l'apostrophe devant pour forcer en texte
    Dans la cellule variable repertoire variable\[nomfichiervariable.xls]Feuil1!A1
    Dans une cellule intermédiare Concaténer les 2 cellules.
    Faire une copie spécial valeur dans une autre cellule et valider avec ENTER.
    J'ai pas trouver mieux.
    Probablement qu'en VBA ce serait faisable plus simplement

    A+
    -1
  9. jihelge Messages postés 75 Statut Membre 7
     
    juste un détail il faut des '
    pour encadrer le path-nom de fichier
    exemple
    ='C:\essai\[essai.xls]Feuil1'!$A$1

    mais excell ne saura pas évaluer le contenu de la cellule s'il n'a pas évalué l'autre
    Il faut donc qu'il ouvre le fichier référencé

    c'est comme une pile d'appel si tu appel une fonction pour obtenir le résultat qu'elle calcule il faut exécuter la fonction pour évaluer le calcul

    A+
    -1
  10. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Là j'ai pas bien compris, tu veux ouvrir un autre classeur quand tu ouvre le premier ?
    Ca n'a aucun sens, ou bien je suis tout à fait à côté de la plaque ?
    A+
    PS: Par VBA je t'ai dit que c'était plus facile, non ?
    Enfin, si c'est ce que tu veux.
    -1
    1. jihelge Messages postés 75 Statut Membre 7
       
      Vois excel comme un serveur logiciel
      une machine de niveau 7

      il prend un fichier et l'interprète

      en fait c'est un héritier du Qbasic
      c'est pour cela qu l'on a accès au VB qui est son langage de base

      c'est une machine d'interpétation de contenus de céllules.

      un fichier chargé dans la machine est actif. il vit;

      Un fichier sur le disque dort. Il est inactif

      La valeur contenu dans une cellule est inconnue tat que le fichier n'est pas chargé et devient donc actif.


      Imaginons que t fasse réfrence à une page qui fasse un calcul sur la date !

      Il est évident qu'il doit être chargé et interprété pour savoir le résultat du calul avant de le copier dans l'autre page !

      Si tu fait référence à un fichier non ouvert, excell te demandera (boite de dialogue) si tu accepte la dernière valeur

      fait l'essai tu verra

      Imagine les choses de façon dynamiques et non statiques.

      a++
      -1