Récupération données chemin variable

Fermé
Bishop - 3 oct. 2008 à 10:54
jihelge Messages postés 71 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 4 octobre 2008 - 3 oct. 2008 à 21:57
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
A voir également:

9 réponses

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
jihelge Messages postés 71 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 4 octobre 2008 7
3 oct. 2008 à 12:48
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
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jihelge Messages postés 71 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 4 octobre 2008 7
3 oct. 2008 à 12:09
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
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
3 oct. 2008 à 13:25
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
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
3 oct. 2008 à 15:07
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
jihelge Messages postés 71 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 4 octobre 2008 7
3 oct. 2008 à 15:39
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
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
3 oct. 2008 à 15:40
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
jihelge Messages postés 71 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 4 octobre 2008 7
3 oct. 2008 à 21:57
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