Appel à un fichier dont le nom est dans une cellule...
8 réponses
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 !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
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
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
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
JB
Bonjour,
A21 contient par exemple Stock.xls ( qui est ouvert)
=INDIRECT("[" & A21 & "]janvier!$B$2")
JB
Bonjour,
A21 contient par exemple Stock.xls ( qui est ouvert)
:-( 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 !
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...
:-( 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 !
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)
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)
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)
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
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... :-(
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
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 !
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 !