OVH Cloud OVH Cloud

Appel à un fichier dont le nom est dans une cellule...

8 réponses
Avatar
STEFY
Re bonjour à tous.

Ben oui, c'est encore moi...
J'apprends beaucoup et j'en redemande !

J'aimerais maintenant, faire appel à la cellule G11 du fichier truc.xls
Ma formule est donc logiquement ='C:\Mes documents\[truc.xls]JANVIER'!$G$11

Comment puis-je faire pour appeler un fichier dont le nom est en fait
contenu dans la cellule A21 du classeur courant ?
En effet, le nom du fichier de référence changera régulièrement et c'est la
cellule A21 qui la contiendra...
Je sais que je cherche la petite bête mais c'est mon cahier des charges et
je suis certain que cette manip doit exister !

Merci encore beaucoup

8 réponses

Avatar
JB
Bonjour,

On suppose que truc.xls est ouvert.

=INDIRECT("'"&B21&"[truc.xls]janvier'!$G$11")

Si le fichier truc.xls, il faut une macro qui ecrit la formule
dynamiquement quand on saisi le nom du fichier. Sur l'exemple, on ecrit
une formule somme() dynamiquement lorsque le nom du fichier est saisi
en C5

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$5" And Target.Count = 1 Then
Application.EnableEvents = False
[C5].Formula = "=SUM([" & Target.Value & "]janvier!$B$2:$B$4)"
Application.EnableEvents = True
End If
End Sub

Cordialement JB
Avatar
STEFY
JB bonjour et merci de te pencher sur mon prblème...

J'examine ta proposition, fort instructive au demeurant, et je me rends
compte que je me suis très mal expliqué.
Pardon !

C'est le fichier truc.xls dont le nom changera...
Dans la cellule A1 du fichier courant (celui où je veux placer ma
formule...), je veux en fait récupérer la valeur de la cellule G11 d'un
fichier qui aujourd'hui se nomme truc.xls, demain peut-être machin.xls pour
un jour pourquoi pas s'appeler chose.xls.
Le nom du fichier sera indiqué dans la cellule A21 du fichier courant.

Concrètement, cela veut dire que mon utilisateur importera un fichier à lui
et qu'il inscrira le nom de son fichier dans la cellule A21.
En admettant qu'il écrive le mot "bidule" dans la cellule A21, j'aimerai que
A1 renvoie la valeur de la cellule G11 du fichier bidule.xls (je peux lui
imposer d'inscrire également l'extension ".xls" si c'est obligatoire !)

Voilà...
J'espère m'être mieux exprimé cette fois.
Merci encore... et encore ! :-)


Bonjour,

On suppose que truc.xls est ouvert.

=INDIRECT("'"&B21&"[truc.xls]janvier'!$G$11")

Si le fichier truc.xls, il faut une macro qui ecrit la formule
dynamiquement quand on saisi le nom du fichier. Sur l'exemple, on ecrit
une formule somme() dynamiquement lorsque le nom du fichier est saisi
en C5

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$5" And Target.Count = 1 Then
Application.EnableEvents = False
[C5].Formula = "=SUM([" & Target.Value & "]janvier!$B$2:$B$4)"
Application.EnableEvents = True
End If
End Sub

Cordialement JB




Avatar
JB
Bonjour,

A21 contient par exemple Stock.xls ( qui est ouvert)

=INDIRECT("[" & A21 & "]janvier!$B$2")

JB
Avatar
JB
Bonjour,

Pour faire des essais (A placer dans le même répertoire)

http://cjoint.com/?bkrhyh312C
http://cjoint.com/?bkrhXAc5nh fichier Stock.xls

JB
Avatar
STEFY
Re bonjour,

:-(
Je suis désolé de t'embêter mais chez moi, ça ne fonctionne pas...
J'ai pourtant bien fait ce que tu m'as conseillé ! Enfin, j'espère...
:-(

Pensant que le problème était peut-être dû à ma cellule A21 qui est une
concaténation de 3 références différentes, j'ai essayé d'en extraire le
contenu au format texte dans B21.
Mais rien n'y fait. Même après avoir pointé sur B21, ma cellule renvoie
toujours #REF!

Désolé mais je me vois dans l'obligation de t'embêter encore...

Merci !
Avatar
STEFY
Bonsoir JB...

Quel beau boulot !
Je n'ai pas réussi à télécharger le fichier stock.xls mais c'est pas grave,
j'en ai créé un et ça marche !
J'ai même modifié les cellules de références pour les adapter à mon fichier
et ça fonctionne parfaitement !

En revanche, j'ai honte de dire que je n'arrive pas à faire pareil dans mon
fichier...
Chez moi, à l'ouverture du fichier, excel ne me demande pas de mettre à jour
le classeur avec l'autre...

Qu'est-ce que j'ai pas fait ?
- J'ai ouvert l'éditeur de VB.
- J'ai double-cliqué sur la feuille que doit recevoir la macro et ai copié
la totalité des lignes après les avoir mises à ma sauce.
- Fermeture après enregistrement du fichier.

Pardon pour mon incompétence mais je suis purement autodidacte...!

Merci beaucoup


Bonjour,

Pour faire des essais (A placer dans le même répertoire)

http://cjoint.com/?bkrhyh312C
http://cjoint.com/?bkrhXAc5nh fichier Stock.xls

JB




Avatar
STEFY
re...

J'ajoute que ma cellule (C5 dans ton exemple) n'est absolument pas modifiée
et ne contient auncune formule...
Il est certain que la macro n'est pas lancée...
C'est vraiment tout ce que j'ai pu constater... :-(

Re merci
Avatar
STEFY
Ca y est ! Ca maaaarche !

Je ne sais pas comment j'ai fait, mais ça marche !
Désolé donc et encore merci beaucoup à toi JB !

A bientôt !