OVH Cloud OVH Cloud

Comment faire référence à un fichier fermé

9 réponses
Avatar
Tatane
Bonjour,

Comme précisé ci-dessous, j'ai besoin d'aide: Voici ma formule :

=SI($C$1=0;0;DECALER(Affaires!$B$2;EQUIV($C$1;AFFAIRE;0);6))

Je voudrais que "Affaires!$B$2" et "AFFAIRE" (plage définie) ne soient pas
dans une feuille de mon classeur mais dans un fichier à part (Base Dest.xls).

Quelqu'un peut-il m'aider ?
--
Je ne suis pas bon mais je vais me soigner grâce à vous, merci.

9 réponses

Avatar
Daniel
Bonjour.
=SI($C$1=0;0;DECALER('C:temp[Base
Dest.xls]Affaires'!$B$2;EQUIV($C$1;'C:tempBase Dest.xls'!AFFAIRE;0);6))
Modifie le répertoire c:temp.
Cordialement.
Daniel
"Tatane" a écrit dans le message de news:

Bonjour,

Comme précisé ci-dessous, j'ai besoin d'aide: Voici ma formule :

=SI($C$1=0;0;DECALER(Affaires!$B$2;EQUIV($C$1;AFFAIRE;0);6))

Je voudrais que "Affaires!$B$2" et "AFFAIRE" (plage définie) ne soient pas
dans une feuille de mon classeur mais dans un fichier à part (Base
Dest.xls).

Quelqu'un peut-il m'aider ?
--
Je ne suis pas bon mais je vais me soigner grâce à vous, merci.


Avatar
Tatane
Merci de ta réponse rapide mais cela ne fonctionne pas.
J'avais oublié de préciser que mon fichier "Base Dest.xls" est dans un autre
répertoire et de plus il reste fermé (c'est une base avec des infos communes
à plusieurs fichiers) quand je veux y récupérer mes infos.
Dans mon fichier de départ le résultat de ta solution me donne #VALEUR! et
quand mon fichier "Base Dest.xls" est ouvert j'ai #N/A

--

Je ne suis pas bon mais je vais me soigner grâce à vous, merci.



Bonjour,

Comme précisé ci-dessous, j'ai besoin d'aide: Voici ma formule :

=SI($C$1=0;0;DECALER(Affaires!$B$2;EQUIV($C$1;AFFAIRE;0);6))

Je voudrais que "Affaires!$B$2" et "AFFAIRE" (plage définie) ne soient pas
dans une feuille de mon classeur mais dans un fichier à part (Base Dest.xls).

Quelqu'un peut-il m'aider ?
--
Je ne suis pas bon mais je vais me soigner grâce à vous, merci.


Avatar
Daniel
Essaie, si tu le peux de remplacer DECALER par INDEX :
=SI($C$1=0;0;INDEX('E:DonneesDanielmpfe[Base
Dest.xls]Affaires'!$B$2:$J$100;EQUIV($C$1;'E:DonneesDanielmpfeBase
Dest.xls'!AFFAIRE;0);6))
Daniel
"Tatane" a écrit dans le message de news:

Merci de ta réponse rapide mais cela ne fonctionne pas.
J'avais oublié de préciser que mon fichier "Base Dest.xls" est dans un
autre
répertoire et de plus il reste fermé (c'est une base avec des infos
communes
à plusieurs fichiers) quand je veux y récupérer mes infos.
Dans mon fichier de départ le résultat de ta solution me donne #VALEUR! et
quand mon fichier "Base Dest.xls" est ouvert j'ai #N/A

--

Je ne suis pas bon mais je vais me soigner grâce à vous, merci.



Bonjour,

Comme précisé ci-dessous, j'ai besoin d'aide: Voici ma formule :

=SI($C$1=0;0;DECALER(Affaires!$B$2;EQUIV($C$1;AFFAIRE;0);6))

Je voudrais que "Affaires!$B$2" et "AFFAIRE" (plage définie) ne soient
pas
dans une feuille de mon classeur mais dans un fichier à part (Base
Dest.xls).

Quelqu'un peut-il m'aider ?
--
Je ne suis pas bon mais je vais me soigner grâce à vous, merci.




Avatar
dre
Bonjour à vous deux, ... et aussi aux autres.

Comme je ne suis pas des plus malins, il faut necessairement que j'emploie
des trucs simples pour pouvoir réaliser ce que je souhaite.
Voici donc comment je procède.

J'ouvre les deux classeurs.
Dans le classeur "destination" j'écris la formule avec référence au classeur
"source" et je vérifie si elle me renvoie la bon résultat.
Je ferme d'abord le classeur "source".
Excel adapte automatiquement le chemin de la formule dans le classeur
"destionation".
Ensuite j'enregistre le classeur "destination" et je le ferme.
A sa prochaine ouverture les liaisons fonctionnenet parfaitement.

Â+






Bonjour,

Comme précisé ci-dessous, j'ai besoin d'aide: Voici ma formule :

=SI($C$1=0;0;DECALER(Affaires!$B$2;EQUIV($C$1;AFFAIRE;0);6))

Je voudrais que "Affaires!$B$2" et "AFFAIRE" (plage définie) ne soient pas
dans une feuille de mon classeur mais dans un fichier à part (Base Dest.xls).

Quelqu'un peut-il m'aider ?
--
Je ne suis pas bon mais je vais me soigner grâce à vous, merci.


Avatar
Tatane
L'erreur est #REF! maintenant !

Je te redonne ma formule, au cas où...:

=SI($C$1=0;0;INDEX('L:CAOSite de La Hague - Ref[Base
Dest.xls]Affaires'!$B$2;EQUIV($C$1;'L:CAOSite de La Hague - RefBase
Dest.xls'!AFFAIRE;0);3))

--
VBA Excel, c''est bon mais c''est chaud !



Essaie, si tu le peux de remplacer DECALER par INDEX :
=SI($C$1=0;0;INDEX('E:DonneesDanielmpfe[Base
Dest.xls]Affaires'!$B$2:$J$100;EQUIV($C$1;'E:DonneesDanielmpfeBase
Dest.xls'!AFFAIRE;0);6))
Daniel
"Tatane" a écrit dans le message de news:

Merci de ta réponse rapide mais cela ne fonctionne pas.
J'avais oublié de préciser que mon fichier "Base Dest.xls" est dans un
autre
répertoire et de plus il reste fermé (c'est une base avec des infos
communes
à plusieurs fichiers) quand je veux y récupérer mes infos.
Dans mon fichier de départ le résultat de ta solution me donne #VALEUR! et
quand mon fichier "Base Dest.xls" est ouvert j'ai #N/A

--

Je ne suis pas bon mais je vais me soigner grâce à vous, merci.



Bonjour,

Comme précisé ci-dessous, j'ai besoin d'aide: Voici ma formule :

=SI($C$1=0;0;DECALER(Affaires!$B$2;EQUIV($C$1;AFFAIRE;0);6))

Je voudrais que "Affaires!$B$2" et "AFFAIRE" (plage définie) ne soient
pas
dans une feuille de mon classeur mais dans un fichier à part (Base
Dest.xls).

Quelqu'un peut-il m'aider ?
--
Je ne suis pas bon mais je vais me soigner grâce à vous, merci.









Avatar
Daniel
Note que j'ai remplacé $B$2 par $B$2:$J$100, un tableau qui doit être
suffisamment grand pour contenir la cellule visée.
Daniel
"Tatane" a écrit dans le message de news:

L'erreur est #REF! maintenant !

Je te redonne ma formule, au cas où...:

=SI($C$1=0;0;INDEX('L:CAOSite de La Hague - Ref[Base
Dest.xls]Affaires'!$B$2;EQUIV($C$1;'L:CAOSite de La Hague - RefBase
Dest.xls'!AFFAIRE;0);3))

--
VBA Excel, c''est bon mais c''est chaud !



Essaie, si tu le peux de remplacer DECALER par INDEX :
=SI($C$1=0;0;INDEX('E:DonneesDanielmpfe[Base
Dest.xls]Affaires'!$B$2:$J$100;EQUIV($C$1;'E:DonneesDanielmpfeBase
Dest.xls'!AFFAIRE;0);6))
Daniel
"Tatane" a écrit dans le message de
news:

Merci de ta réponse rapide mais cela ne fonctionne pas.
J'avais oublié de préciser que mon fichier "Base Dest.xls" est dans un
autre
répertoire et de plus il reste fermé (c'est une base avec des infos
communes
à plusieurs fichiers) quand je veux y récupérer mes infos.
Dans mon fichier de départ le résultat de ta solution me donne #VALEUR!
et
quand mon fichier "Base Dest.xls" est ouvert j'ai #N/A

--

Je ne suis pas bon mais je vais me soigner grâce à vous, merci.



Bonjour,

Comme précisé ci-dessous, j'ai besoin d'aide: Voici ma formule :

=SI($C$1=0;0;DECALER(Affaires!$B$2;EQUIV($C$1;AFFAIRE;0);6))

Je voudrais que "Affaires!$B$2" et "AFFAIRE" (plage définie) ne soient
pas
dans une feuille de mon classeur mais dans un fichier à part (Base
Dest.xls).

Quelqu'un peut-il m'aider ?
--
Je ne suis pas bon mais je vais me soigner grâce à vous, merci.











Avatar
Tatane
Salut,

A chaque modification de formule qu'on me propose, c'est ce que je fais mais
malgré tout .... le VBA fait rien que m'embêter !

--
VBA Excel, c''est bon mais c''est chaud !



Bonjour à vous deux, ... et aussi aux autres.

Comme je ne suis pas des plus malins, il faut necessairement que j'emploie
des trucs simples pour pouvoir réaliser ce que je souhaite.
Voici donc comment je procède.

J'ouvre les deux classeurs.
Dans le classeur "destination" j'écris la formule avec référence au classeur
"source" et je vérifie si elle me renvoie la bon résultat.
Je ferme d'abord le classeur "source".
Excel adapte automatiquement le chemin de la formule dans le classeur
"destionation".
Ensuite j'enregistre le classeur "destination" et je le ferme.
A sa prochaine ouverture les liaisons fonctionnenet parfaitement.

Â+






Bonjour,

Comme précisé ci-dessous, j'ai besoin d'aide: Voici ma formule :

=SI($C$1=0;0;DECALER(Affaires!$B$2;EQUIV($C$1;AFFAIRE;0);6))

Je voudrais que "Affaires!$B$2" et "AFFAIRE" (plage définie) ne soient pas
dans une feuille de mon classeur mais dans un fichier à part (Base Dest.xls).

Quelqu'un peut-il m'aider ?
--
Je ne suis pas bon mais je vais me soigner grâce à vous, merci.




Avatar
Tatane
Ca y est, j'ai trouvé une astuce après avoir essayé manuellement.
C'est pas dans le manuel, mais ça fonctionne !
Dans le VBA onglet "This Workbook" j'ai mis ceci :

Private Sub Workbook_Open()
Workbooks.Open Filename:= _
"L:CAOSite de La Hague - RefBase Dest.XLS"
ActiveWorkbook.Close
End Sub

et ça me met tout à jour ! Par contre si il y a plus conventionnel, je
prends !

Merci à vous deux "daniel" et "dre", on apprends vite avec vous.
--
VBA Excel, c''est bon mais c''est chaud !



Salut,

A chaque modification de formule qu'on me propose, c'est ce que je fais mais
malgré tout .... le VBA fait rien que m'embêter !

--
VBA Excel, c''est bon mais c''est chaud !



Bonjour à vous deux, ... et aussi aux autres.

Comme je ne suis pas des plus malins, il faut necessairement que j'emploie
des trucs simples pour pouvoir réaliser ce que je souhaite.
Voici donc comment je procède.

J'ouvre les deux classeurs.
Dans le classeur "destination" j'écris la formule avec référence au classeur
"source" et je vérifie si elle me renvoie la bon résultat.
Je ferme d'abord le classeur "source".
Excel adapte automatiquement le chemin de la formule dans le classeur
"destionation".
Ensuite j'enregistre le classeur "destination" et je le ferme.
A sa prochaine ouverture les liaisons fonctionnenet parfaitement.

Â+






Bonjour,

Comme précisé ci-dessous, j'ai besoin d'aide: Voici ma formule :

=SI($C$1=0;0;DECALER(Affaires!$B$2;EQUIV($C$1;AFFAIRE;0);6))

Je voudrais que "Affaires!$B$2" et "AFFAIRE" (plage définie) ne soient pas
dans une feuille de mon classeur mais dans un fichier à part (Base Dest.xls).

Quelqu'un peut-il m'aider ?
--
Je ne suis pas bon mais je vais me soigner grâce à vous, merci.






Avatar
JB
Bonjour,

http://cjoint.com/?ivrXUuQ6jU

1/
Sub LitClasseurFermé()
ChDir ActiveWorkbook.Path
ChampOuCopier = "C2:C10"
Chemin = ActiveWorkbook.Path
Fichier = "stock.xls"
onglet = "Janvier"
ChampAlire = "B2:B10" ' dans Stock.Xs
LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
End Sub

Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire)
Range(ChampOuCopier).Formula = "='" & Chemin & "[" & Fichier & "]"
& onglet & "'!" & ChampAlire
Range(ChampOuCopier).Value = Range(ChampOuCopier).Value
End Sub

2/Avec ADO:
Liste dans classeur externe fermé
Dans Outils/Références cocher:
Microsoft ActivexDataObject 2.8 Library

Sub auto_open()
ChDir ActiveWorkbook.Path
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=ListeExt.XLS"
Set rs = cnn.Execute("SELECT * FROM MaListe ORDER BY nom")
Range("A2").CopyFromRecordset rs
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub

Le fichier ListeExt.Xls contient un champ nommé MaListe

Nom
Dupont
Durand
Martin
Ceuzin

http://cjoint.com/?ivrZ32P8xe

Cordialement JB


Bonjour,

Comme précisé ci-dessous, j'ai besoin d'aide: Voici ma formule :

=SI($C$1=0;0;DECALER(Affaires!$B$2;EQUIV($C$1;AFFAIRE;0);6))

Je voudrais que "Affaires!$B$2" et "AFFAIRE" (plage définie) ne soient pas
dans une feuille de mon classeur mais dans un fichier à part (Base Dest .xls).

Quelqu'un peut-il m'aider ?
--
Je ne suis pas bon mais je vais me soigner grâce à vous, merci.