Lien "dynamique" entre des fichiers

Bonjour à tous,

voilà je rencontre 2 problèmes avec les liaisons entre classeur :

1er problème :

imaginons que j'ai 10 classeurs "0.xls, 1.xls, 2.xls ... 9.xls"

dans les classeurs de 1 à 9, j'ai un chiffre dans la case A1.

dans mon classeur 0.xls, je voudrais entrer un numéro de classeur dans une cellule (par exemple 5), et qu'il aille me chercher dans ce classeur le chiffre indiqué en case A1.

en gros, si je mets 5 dans la case A1, je voudrais une formule du style ='[5.xls]Feuil1'!A1

Je pensais utiliser la fonction INDIRECT pour pouvoir générer la formule ci-dessus, mais je n'arrive pas à la faire fonctionner pour aller dans un autre classeur :'( je ne sais pas si c'est parce que je m'y prends mal, ou si c'est parce qu'elle ne fonctionne que pour des références vers le classeur courant... si vous avez une idée ?!

2ème problème :

j'ai aussi un problème plus général dans le cas où j'accède directement au classeur (avec une formule type ='[Nom_classeur.xls]feuille!A1')

Si la cellule A1 est fusionnée avec B1 (fusion horizontale: en verticale, cela marche.), alors cette formule ne fonctionne que quand le classeur Nom_classeur.xls est ouvert :/ s'il est fermé, elle indique "#N/A" :'(

évidemment, si la cellule n'est pas fusionnée, ou fusionnée avec des cellules de la même colonne, cela fonctionne :/

Merci d'avance.

Bonjour senga

Pas si simple car pour qu'une liaison fonctionne, comme du reste tu le signales correctement dans la partie 2 de ta querstion,il faut que le chemin d'accès soit complet.

Tout d'abord, la formule de liaison avec la cellule A1 de la Feuille s'appelant Feuil1 dans le fichier 5.xls qui se trouverait dans le répertoire D et dans Mes documents pourraît s'écrire:

="="&"'D:\Mes documents\"&"["&$A$1&".xls"&"]"&"Feuil1'!$A$1"si la cellule A1 contient 5.

On se retrouve alors avec une formule texte qui affiche

='D:\Mes documents\[5.XLS]Feuil1'!$A$1Pour activer cette formule, il faut passer par un module VBA avec l'instruction:

ActiveCell.Value = ActiveCell.Value

Le problème est que cette application transforme la cellule contenant la formule texte en une liaison figée avec 5 et qu'en entrant un nouveau nom de fichier en A1, ça ne marche plus.

Pour contourner ce probléme:

en A1 le numéro du fichier soit 5

en A2 la formule texte

="="&"'D:\Mes documents\"&"["&$A$1&".xls"&"]"&"Feuil1'!$A$1"

et en A3 le résultat renvoyé par la macro.

Le code à copier-coller: Menu "Outils" "Macro" "Visual basic Editor" et "Insérer" "Module"

Sub Liaison_Variable()
'
' Liaison_Variable Macro
' Macro enregistrée le 14/09/2006 par Amadéus
'

'
    Range("A2").Select
    Selection.Copy
    Range("A3").Select
    ActiveSheet.Paste
    Range("A3").Select
    Application.CutCopyMode = False
    ActiveCell.Value = ActiveCell.Value
End Sub

Il faut bien sur s'assurer que la cellule du fichier contient bien quelque chose.

Cordialement

Amadéus

Rebonjour

Avec ce post, le fichier joint pour les 2 réponses.

Problème 2

Pour ma part, une liaison reste une liaison, que la cellule soit ou nom fusionnée.

Et l'adresse A1 reste bien A1, même en cas de fusion de A1 avec B1 ou A2.

Pour ma part, je me suis placé en situation réelle en créant un classeur 5.xls et tout fonctionne normalement, fusionné ou nom. Je ne peux donc t'apporter de réponse, sinon d'essayer cette curiosité qui fonctionne classeur lié fermé.Au lieu d'écrire en A1:

='D:\Mes documents\[5.xls]Feuil1'!$A$1essaie

=SOMMEPROD(--('D:\Mes documents\[5.xls]Feuil1'!$A$1>1); --('D:\Mes documents\[5.xls]Feuil1'!$A$1))

Cordialement,

Amadéus

https://www.excel-pratique.com/~files/doc/senga.xls

je n'avais pas pensé à utiliser une macro =)

merci énormément pour cette solution (je n'ai regardé que la première partie), elle a l'air de fonctionner niquel. Bon, je vais avoir besoin d'un peu plus de boulot que prévu pour faire mon truc, mais au final, ça devrait être bon

merci encore !

re amadeus !

voila mon fichier test.. tu verra j'ai essayé plusieurs formules.. et les lettre à la fin cest les noms de mes cellules et DT CC cest le nom des mes onglets

mais j'ai tjs des probleme de mise à jours des liaisons...

537synth.zip (25.54 Ko)

et je crois que cette formule :

='G:\DT\Boite J\33\[33_JH3169_00.xls]DT CC'!$C$69

elle marche.. mais jaimeré avec le second fichier pouvoir sortir en choisissant un fichier

toute les formules avec la cellule de fin qui change, comme ca je copi cette ligne dans mon fichier synthese et le fichier est rajouté .. je sais pas si je suis clair...

Rechercher des sujets similaires à "lien dynamique entre fichiers"