Probleme de liens externe

Bonjour à tous et meilleurs voeux.

J'ai une feuille excel 2010 nommé "recap" qui possède différents calculs venant d'autre fichiers externes excel, or mon problème est le suivant :

Sur cette feuille RECAP En C7 j'ai la formule : ='[semaine 1.xlsx]vente'!$B$38 qui me permet de récupérer la valeur de B38 correspondant à la semaine 1. En D7 je dois mettre la formule : ='[semaine 2.xlsx]vente'!$B$38 afin de récupérer la valeur pour la semaine 2 et ainsi de suite pour toute l'année.

mais le problème est là, car ces feuilles (semaine 2, semaine 3...) n'existent pas encore et seront crées à la fin de chaque semaine et lorsque je mets la formule, Excel ouvre une boite de dialogue pour que je sélectionne le fichier semaine 2.xlsx qui est inexistant à ce jour....

Comment faire pour mettre une formule "en avance" qui teste si un fichier existe et si oui alors extrait les valeurs.

Espérant avoir été clair dans mes explications,

D'avance merci

Fred

Bonjour,

  • Ouvre ton fichier semaine1
  • En C7 de la feuille Recap de ton fichier recap (??) mets cette formule -->

=SI(ESTERREUR(INDIRECT("[Semaine" & COLONNE()-2 &".xlsx]Vente!$B$38"));"";INDIRECT("[Semaine" & COLONNE()-2 &".xlsx]Vente!$B$38"))

  • Ensuite recopie cette formule vers D7, E7 etc...
  • Enregistre ton fichier.

Amicalement

Merci de ta réponse, par contre le chemin d'accès exact à ma feuille excel (qui n'est pas encore crée) est :

D:\societe\2011\vente semaine 1.xlsx

si je met la formule :

=SI(ESTERREUR(INDIRECT("D:\societe\2011\[Vente Semaine" & COLONNE()-2 &".xlsx]Reporting!$B$38"));"";INDIRECT("D:\societe\2011\[Vente Semaine" & COLONNE()-2 &".xlsx]Reporting!$B$38"))

J'ai fais un test en créant la feuille vente semaine 1 et rien ne fonctionne.... cela me laisse une case vierge.

Est ce que j'ai fais une erreur ???

Fred

Bonjour

Pour mieux essayer de comprendre, dans quelle cellule exactement as-tu mis la formule de ton dernier message?

=SI(ESTERREUR(INDIRECT("D:\societe\2011\[Vente Semaine" & COLONNE()-2 &".xlsx]Reporting!$B$38"));"";INDIRECT("D:\societe\2011\[Vente Semaine" & COLONNE()-2 &".xlsx]Reporting!$B$38"))

Cordialement

Bonsoir,

Ma formule est en I8 mais elle doit être en I9, I10...

En fait j'ai refais mon tableau afin de le simplifier et de l'éclaircir, et pour être plus clair il faudrait :

Sur mon fichier "RECAP"

> en I8 je dois avoir la formule qui teste si le fichier "D:\societe\2011\vente semaine 1.xlsx" existe et si oui alors il doit m'afficher le contenu de la cellule B38 de ce fichier (d'où ce post).

> En I9 je fais idem pour le fichier "D:\societe\2011\vente semaine 2.xlsx" puis I10 pour la semaine 3... Mais toujours avec la cellule B38 à récupérer sur les différents fichiers.

> Enfin, en J8 je dois mettre une formule qui m'additionne les cellule I8,I9,I10... afin d'avoir un total.

J'ai plusieurs Formule du même type à faire sur cette feuille RECAP mais si vous arrivez à m'aider pour celle ci je pense (enfin j'espère) pouvoir les transposer pour mes autres calculs...

Voilà, d'avance merci

Fred

Bonjour

Au départ, tu étais en colonne C (je parle de ta formule) et pour faire "vente semaine 1", Dan t'avait indiqué dans sa formule INDIRECT : COLONNE()-2.

Comme la colonne C est la 3, COLONNE()-2 renvoyait 1.

Maintenant tu est en colonne I, soit la colonne No 9

Donc pour faire "vente semaine 1" en I8, tu dois avoir dans la formule de Dan COLONNE()-8

pour semaine 2 en I9, COLONNE()-7

Cordialement

Amadeus Bonjour,

Déjà merci sur une chose, car je viens de comprendre l'attribution de la valeur colonne()

''Et ce qui est pris n'est plus à prendre..."

par contre si maintenant je colle la formule suivante en I8:

=SI(ESTERREUR(INDIRECT("D:\societe\2011\[Vente Semaine" & COLONNE()-8 &".xlsx]Reporting!$B$38"));"";INDIRECT("D:\societe\2011\[Vente Semaine" & COLONNE()-8 &".xlsx]Reporting!$B$38"))

j'ai toujours une cellule vierge

Alors je ne sais pas, Erreur de "" ou erreur de [], ou problème avec Excel 2010

Fred

Re, bonjour

Oups, désolé, j'ai suivi la piste ouverte par Dan et (Excuse moi dan), la piste n'est pas bonne.

Il faut reprendre depuis le début.

En effet, INDIRECT ne peut fonctionner que sur les Feuilles d'un même classeur. Pour une liaison externe, il faut utiliser INDIRECT.EXT ou la macro personnalisée de ce fichier, lequel fichier est sur ce post qui correspond à ton problème:

https://forum.excel-pratique.com/excel/creer-une-liaison-sans-ouvrir-les-fichiers-sources-t20711.html

Cordialement

Wouah,

Alors j'ai suivi ton lien et j'ai fais des tests ...

Sur l'exemple :

=INDIRECT.EXT("'C:\[Mon Classeur.xls]Table 5'!E34) pour une mise a jour automatique

Si je mets :

=INDIRECT.EXT("'D:\societe\2011\[Vente semaine 1.xlsx]Reporting'!B38") J'ai comme message #NOM?

Surement un "truc" que j'ai raté

Mais mon niveau Excel est au sous-sol alors....

Fred

Bonjour

As-tu installé Morefunc avant d'utiliser INDIRECT.EXT ?

Si non, reviens sur le lien précédent et termine le sujet. L'exemple dans le fichier n'est pas avec INDIRECT.EXT mais avec une fonction personnalisée "LiaisonExt"

Cordialement

Salut,

Alors je viens d'installer Morefunc

Mais maintenant j'ai une erreur et ma cellule me marque toujours #NOM?

Précision je suis sous Excel 2010 x64 avec Windows 7 x64

Pour faire peut être plus simple je joint mes 2 fichiers.

Le fichier Vente semaine 1.xlsx se trouve dans le répertoire D:\société\2011\

le fichier Recap se trouve dans mon répertoire D:\société\

J'ai besoin de remplir avec les formules les cases I8..I12 puis I15...I19 etc

D'autre endroit auront le même formules mais comme je disais je pense pouvoir les adapter...

Amicalement

Fred

Bonjour

désolé pour l'absence (pb connu suite aux périodes de fêtes)

L'intérêt d' INDIRECT.EXT est de pouvoir l'utiliser pour bâtir sur le modèle INDIRECT, donc sous forme de texte, des liaisons variables.

Déjà, nous sommes mal parti si ton répertoire se nomme société et societe dans ta formule.

Ici, la formule serait

=INDIRECT.EXT("'D:\société\2011\"&"[Vente "&A8&".xlsx"&"]Reporting'!B38")

laquelle formule s'incrémente vers le bas

Cordialement

23societe.zip (27.62 Ko)

Bonjour,

Que signifie ce qui suit:

Déjà, nous sommes mal parti si ton répertoire se nomme société et societe dans ta formule.

Ici, la formule serait

=INDIRECT.EXT("'D:\société\2011\"&"[Vente "&A8&".xlsx"&"]Reporting'!B38")

laquelle formule s'incrémente vers le bas

Cordialement

Comment réportorier un fichier!

Bonjour Amadéus,

Alors pour faire un retour.

J'ai copié la formule et vérifié

mais avant cela j'ai réinstallé MOREFUNC car comme je l'avais marqué plus haut il me donnait une erreur.

Si j'ai bien fait l'installation :

> J'ai lancé setup.exe

> Dans Excel : j'ai fais OPTION -> COMPLEMENT et j'ai rajouté Morefunc12.xlam (apparait comme Morfunc12 dans "macros complémentaire disponible)

A ce stade J'ai comme réponse en I8 : #NOM!

Puis j'ai refais OPTION -> COMPLEMENT et si je rajoute Morefunc11.xla alors là j'ai mon erreur cité plus haut dans le post : Erreur de compilation dans le module..... (mais il apparait Morefunc Tools dans "macros complémentaires disponibles) et I8 me retourne toujours : #NOM!

MOREFUNC n'est pas compatible avec Excel 2010???

Si c'est ça et bien c'est la M.....

Fred

Bonsoir

MOREFUNC n'est pas compatible avec Excel 2010???

Si c'est ça et bien c'est la M.....

Il semblerait en effet si j'en croie ce que je lis sur le Net que cela ne fonctionne pas avec 2010. A voir si quelqu'un peut le confirmer (j'ai la version 2003)

Cordialement

J'ai effectivement passé un peu de temps sur le Net et apparemment pas compatible avec 2010...

Connaitrais tu une autre solution que Morefunc pour mon problème???

Amicalement,

Fred

Bonjour

je te propose une solution VBA qui de par sa souplesse devrait correspondre à ta demande.Merci à Claude Dubois et Dan pour leur aide.

Le double click dans la plage I8:I90 active la liaison et renvoie la valeur cherchée du fichier correspondant.

Si le fichier n'est pas trouvé (pas encore créé) s'inscrit un #REF! sans demande de mise à jour qu'il te suffit d'effacer en cas d'erreur.

Le Zip contient toujours les mêmes fichiers et doit être ouvert dans D:

Cordialement

31societe.zip (33.70 Ko)

Amadeus bonjour,

merci de ta réponse et effectivement hormis le VBA je ne vois pas d'autre solution.

J'ai fouillé un peu sur le Net et j'ai fais ma sauce en partant de ta réponse et quelques autres lignes VBA et je suis arrivé à ca :

En créant un Bouton Btn_Calcul qui m'envoie sur cette macro lorsque je clique dessus :

Sub Calcul_Cellule()

Dim FSO As Object

Set FSO = CreateObject("Scripting.Filesystemobject")

Application.DisplayAlerts = False

For f = 8 To 90

If FSO.fileExists("D:\société\2011\Vente " & Cells(f, "a") & ".xlsx") = True Then

Cancel = True

chemin = "=""=""&""'D:\société\2011\""&""[Vente " & Cells(f, "a") & ".xlsx""&""]Reporting'!"

Cells(f, "I").Formula = chemin & "B38" & """"

Cells(f, "I") = Cells(f, "I").Value

Cells(f, "J").Formula = chemin & "G38" & """"

Cells(f, "J") = Cells(f, "J").Value

Cells(f, "K").Formula = chemin & "K38" & """"

Cells(f, "K") = Cells(f, "K").Value

Cells(f, "L").Formula = chemin & "L38" & """"

Cells(f, "L") = Cells(f, "L").Value

Cells(f, "M").Formula = chemin & "M38" & """"

Cells(f, "M") = Cells(f, "M").Value

Cells(f, "O").Formula = chemin & "N38" & """"

Cells(f, "O") = Cells(f, "O").Value

Cells(f, "P").Formula = chemin & "O38" & """"

Cells(f, "P") = Cells(f, "P").Value

Cells(f, "Q").Formula = chemin & "P38" & """"

Cells(f, "Q") = Cells(f, "Q").Value

'Par contre la formule suivante me donne une erreur #NOM? hors elle est correct et si je fais "ENTER" sur la barre de formule afin de la "revalider manuellement" cela fonctionne. Ou est cette erreur ? Je dois effectuer la fonction NBVAL sur la plage N7:N37 de Vente semaine ....

Cells(f, "N").Formula = "=""=""&""NBVAL('D:\société\2011\""&""[Vente " & Cells(f, "a") & ".xlsx""&""]Reporting'!" & "N7:N36)" & """"

Cells(f, "N") = Cells(f, "N").Value

End If

Next f

Application.DisplayAlerts = True

End Sub

Surement pas mal de chose à améliorer et à épurer mais actuellement elle "fonctionne"

sauf ce NBVAL Et là je ne sais pas pourquoi,

Amicalement

Fred

Bonjour

Essaie en remplaçant NBVAL par COUNTA

Cordialement

NICKEL TOUT FONCTIONNE

Encore merci Amadeus et à très bientôt

Amicalement

Fred

Rechercher des sujets similaires à "probleme liens externe"