Excel Référence d'une cellule

ppil Messages postés 34 Statut Membre -  
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Depuis une cellule Excel je souhaiterai récupérer des valeurs se trouvant dans un autre fichier situé dans un autre répertoire. Et je souhaiterai uniquement changer le numéro de la semaine pour obtenir les valeurs de celle-ci

Voici ce que j'ai mis:
='C:\Planning semaine 37\Planning semaine 37[Planning de la semaine 37.xls]Récapitulation'!C4
Celle-ci marche très bien.

Mais je souhaiterai:
='C:\Planning semaine XX\Planning semaine XX[Planning de la semaine XX.xls]Récapitulation'!C4
Je souhaiterai remplacer le XX par une valeur siué dans la cellule A1.

Donc j'ai essayé ça:
='C:\Planning semaine ' & A1 & '\Planning semaine ' & A1 & '[Planning de la semaine ' & A1 & '.xls]Récapitulation'!C4
Et ça ne marche pas.

Pouvez-vous m'aider?

Merci d'avance

Pascal

18 réponses

RailBird
 
essaye ceci :

='C:\Planning semaine " + A1 + "\Planning semaine " + A1 + "[Planning de la semaine " + A1 + ".xls]
0
ppil Messages postés 34 Statut Membre 13
 
Essai non concluant.

Message #REF!

Pascal
0
RailBird
 
Hm,
Si j'ai bien compris ton problème tu veux ouvrir un fichier : ='C:\Planning semaine XX\Planning semaine XX[Planning de la semaine XX.xls]Récapitulation'!C4
Mais cette variable pour XX stocké dans A1, elle se trouve dans ce même fichier, dans une autre feuille?

Réessaye ça : ='C:\Planning semaine " + A1 + "\Planning semaine " + A1 + "[Planning de la semaine " + A1 + ".xls]Récapitulation'!C4
0
ppil Messages postés 34 Statut Membre 13
 
La cellule A1 se trouve dans le même feuille.

J'ai réessaié. Voici le message
Une des formules de cette feuille de calcul contient une ou plusieurs références externes non valides.
Vérifiez que le chemin d'accés, le classeur, le nom de la plage et les références de cellules de toutes les formules sont corrects.
Plus bouton OK

???
0

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

Posez votre question
ppil Messages postés 34 Statut Membre 13
 
En VBA avec les guilllemets ça marche, mais directement dans une cellule avec les guillements ou les apostrophes, ça ne marche pas!!!

Donc comment faire?
0
RailBird
 
='C:\Planning semaine "" + A1 + ""\Planning semaine "" + A1 + ""[Planning de la semaine "" + A1 + "".xls]Récapitulation'!C4

Ca, ca devrait être bon
0
RailBird
 
='C:\Planning semaine "" + A1 + ""\Planning semaine "" + A1 + ""[Planning de la semaine "" + A1 + "".xls]Récapitulation'!C4

Ca, ca devrait être bon
0
RailBird
 
='C:\Planning semaine "" & A1 & ""\Planning semaine "" & A1 & ""[Planning de la semaine "" & A1 & "".xls]Récapitulation'!C4

Avec les & plutot, pardon pour le dernier post :)
0
ppil Messages postés 34 Statut Membre 13
 
Avec les + ou les & j'ai toujours un problème de #REF!

J'ai refait un essai avec un autre fichier situé dans le même répertoire, et c'est idem.
='[Planning de la semaine "" & A1 & "".xls]Récapitulation'!$A$2
problème de #REF!

Est-ce que chez toi ça marche?
0
RailBird
 
Bah Quand je fais tout bêtement un ="" & A1 & "" dans ma cellule A2 j'ai bien la valeur de A1 donc je vois pas d'où vient le problème mais il doit pas s'agir de la variable!
0
ppil Messages postés 34 Statut Membre 13
 
="" & A1 & ""
ça marche aussi chez moi, mais
='[Planning de la semaine "" & $A$2 & "".xls]Récapitulation'!$A$2
nada, ça ne marche pas!!!
0
pilas31 Messages postés 1878 Statut Contributeur 647
 
Bonjour,

Je débarque dans cette discussion trés intérressante, j'ai cherché un peu et il me semble que la bonne syntaxe est avec l'utilisation de la fonction INDIRECT(). Car elle force l'interprétation des références de cellules dans la formule.

Je pense donc qu'il faut écrire :

=INDIRECT("'[Planning de la semaine "& $A$2 & ".xls]Récapitulation'!$A$2")

J'ai fait fonctionné un exemple mais je crois que malheureusement il faut que le classeur externe soit déjà ouvert, je n'ai pas testé avec le nom complet du fichier.

Est-ce que ça marche chez vous ?
0
wilfried_42 Messages postés 912 Statut Contributeur 245
 
bonjour à tous

t'inquiete pas pilas31, ta formule est Ok
0
ppil Messages postés 34 Statut Membre 13
 
Merci Pilas31,

Ta formule marche, mais...

le fichier source doit être ouvert.

Sans être perfectionniste, je dirais que mon problème n'est toujours pas résolu.

Je dois pas être le 1er à avoir ce problème.

Est-ce que quelqu'un sait comment résoudre ce problème.

ppil
0
pilas31 Messages postés 1878 Statut Contributeur 647
 
Bonjour à tous,

Oui malheureusement en Excel standard il n'y a pas de solution car si tu utilises des parties variables dans le nom de ta référence externe il faut utiliser la fonction INDIRECT() et cette fonction ne marche que si le fichier source est ouvert.

Donc il ne reste plus qu'une voie possible, créer une fonction personalisée en VBA. Je n'ai pas fait l'exercice mais celà me semble possible.

Est-ce que vous êtes de mon avis ?

A+
0
ppil Messages postés 34 Statut Membre 13
 
Merci Pilas31,

Le VBA sera une solution. Je trouve que c'est contourner le problème.

Mon problème me parrait être basic. Et que la seule solution reste le VBA, je trouve ça ... bizarre.

Je laisse encore ma question ouverte 1 à 2 jours, si part hasard quelqu'un trouve LA solution, ensuite je clôturerai ma question.

Mise à part ça, en VBA cela donnerai quoi?

ppil
0
ppil Messages postés 34 Statut Membre 13
 
Celle-ci marche en VBA. Bien sur il faut la mettre à l'ouverture du document et comme ça plus, de soucis.

Private Sub Workbook_Open()
Dim iNSem As Integer
iNSem = Cells(1, 15) ' Contient le numéro de la semaine
Range("C15").Formula = "='C:\Planning semaine " & iNSem & "\Planning semaine " & iNSem & "[[Planning de la semaine " & iNSem & ".xls]Récapitulation'!$A$2"
End Sub

3 lignes de VBA et tout est OK.

Merci à tous

ppil
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonsoir,

Par formule je crois qu'il n'y a pas le choix, c'est classeur ouvert.
S'il est fermé, la seule astuce (si on peut appeler ça ainsi) que j'ai c'est de créer toutes les formules necessaires (par concaténation, copier/collage spécial valeur) dans un onglet et rechercher le résultat voulu dans la liste avec, dans ton cas, les n° de semaines en 1ere colonne.
Lors de la fabrication de la formule le début doit être " =" (avec un espace devant), et on termine en remplaçant ' =' par '='
Mais bon, comme tu n'as pas l'air d'avoir d'allergie à vba il n'y a plus de pb
eric
0