[Excel] Pb de liaison dynamique

ougandor -  
 kjorgahn -
Bonjour tout le monde

Voila j'ai un fichier excel qui s'appui sur 8 autre fichiers excel pour realiser les calculs demandé.
Mon probleme est le suivant : d'une année sur l'autre le fichier excel principal ne change pas par contre le nom des 8 autre fichier excel changent ce qui me pose un pb de liaison lors de l'ouverture de ce fichier.
Comment puis je faire pour automatiser la mise a jour des liaisons svp ? sans que ce soit a faire a la main.

Merci d'avance

Je suis désole si je post au mauvais endroit mais c'est la premiere fois que j'utilise ce forum.
A voir également:

9 réponses

Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
 
bonjour ougandor,

tu es au bon endroit.
mais pour que quelqu'un propose, ne serait-ce qu'un début de piste, pour aider à résoudre ton problème, il faut que tu donnes plus de détails :
les noms des 8 autres fichiers sont-ils du même format, avec une racine commune et une partie "variable", par exemple en fonction de la date. si c'est le cas, les liens peuvent sans doute être rafraichis via VBA. sinon, ça risque d'être difficile...
0
lulu37 Messages postés 80 Statut Membre 13
 
Je vous le dit tout de suite, je n'ai pas la réponse ...
(mais je me pose une question qui ne me semble pas si loin de la tienne Ougandor)

Est ce possible de faire référence à tous les fichiers d'un même répertoire ?
exemple :
imaginons que l'on a plusieurs fichiers ( meme ligne d entete, et même type de données dans les cellules), on souhaite faire une synthese de ces fichiers sous un autre classeur.
(facile c vrai qd ils ne changent pas de noms et qd ils sont déjà tous là !... problématique dans le cas contraire)
En placant tous ces fichiers dans le MEME REPERTOIRE, est ce alors possible de leur faire référence via vba (ou autre moyen qui sait), l'idée étant que si on ajoute un nouveau fichier dans le répertoire quelque soit son nom, il soit automatiquement inclus lui aussi dans la synthése... (et inversement si on en supprime...)

Ya t il un savant fou dans le forum ? lol
0
JvDo Messages postés 2012 Statut Membre 859
 
Bonsoir lulu37,

en pièce jointe https://www.cjoint.com/?iExfHyUbZI un début de réponse pour ta question.

la macro liste les fichiers d'un répertoire que tu choisis.

il ne rest plus qu'à boucler sur ces fichiers, qu'à tester éventuellement si ce sont des classeurs excel et à les maltraiter correctement.

cordialement
0
lulu37 Messages postés 80 Statut Membre 13
 
Bonjour JvDo,
ton lien ne marche pas ...pas ou plus disponible...?
0
JvDo Messages postés 2012 Statut Membre 859
 
Bonjour,

bizarre, bizarre

en voici un nouveau : https://www.cjoint.com/?iFmGFRFvFB

cordialement
0

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

Posez votre question
lulu37 Messages postés 80 Statut Membre 13
 
Re,

Ca plante dans : Sub Arborescence_simple_Dossier()
au niveau de : Dim fso As New FileSystemObject
ca me met le message suivant :
"erreur de compilation : projet ou bibliotheque introuvable "

??

A suivre

Ludivine
0
JvDo Messages postés 2012 Statut Membre 859
 
Bonsoir,

bien-sûr, c'est vrai..... il faut ajouter la référence à "Microsoft Scripting Runtime" (menu Outils/références de VBA)

désolé de l'oubli

A+
0
lulu37 Messages postés 80 Statut Membre 13
 
Coucou,
Ca ne marche toujours pas
0
JvDo Messages postés 2012 Statut Membre 859
 
Bonjour,

comprends pas!
ça marche nickel chez moi!

peux-tu me lister tes références actives VBA?

A+
0
lulu37 Messages postés 80 Statut Membre 13
 
pas de pb

vb for application
excel 11.0 object library
OLE automation
office 11.0 Object library
manquant : ATPVBAEN.XLA
manquant : FUNCRES.XLA
Microsoft scripting runtime

alors doc? qu'est ce qui va pas? lol
0
JvDo Messages postés 2012 Statut Membre 859
 
Bonjour,

il suffit de décocher les manquants

A+
0
lulu37 Messages postés 80 Statut Membre 13
 
MERCI
bon début de piste !
bonne journée
0
kjorgahn
 
Sub Actualisation()

Dim réf1 As String
réf1 = Range("A1").Text
ActiveWorkbook.Names.Add Name:=réf1, RefersTo:= _
"='" & Range("B1").Text

End Sub

Là tu crées un nom (cellule A1), avec la référence du résultat de B1

Attention il y a dans la macro le ' déjà pris en compte au début de ta référence.

Donc au lieu de mettre en B1 : ='c:\....\monfichier.xlsm'!nom
il ne faut mettre que c:\...\monfichier.xlsm'!nom
0