Référence Externe dynamique (avec formule dans le l'adresse)

Bonjour,

Tout d'abord merci à tous pour le temps passer sur mon problème.

Je cherche à créer un lien vers un autre classeur afin de reporter une donnée. donc lien classique + et on le chemin de la cellule.

Actualisation des liaisons lors de l'ouverture classique. Cependant je cherche à automatiser ce lien en fonction d'une cellule (donc d'une formule). En revanche, je ne veux pas de VBA ni la formule INDIRECT (car le classeur n'est pas ouvert).

Je me demande tout simplement si cela est possible ?

Merci à vous pour vos réflexions.

Julien

Bonjour,

Je cherche à créer un lien vers un autre classeur afin de reporter une donnée. ...Cependant je cherche à automatiser ce lien en fonction d'une cellule (donc d'une formule). En revanche, je ne veux pas de VBA ni la formule INDIRECT (car le classeur n'est pas ouvert).

Je me demande tout simplement si cela est possible ?

Non, pas possible à mon connaissance ! Un VBA assez simple peut faire l'affaire (à condition que le fichier cible ne soit pas ouvert par ailleurs).

sauf si quelqu'un d'autre avait une solution ! sait-on jamais !

Bonjour,

si tu peux organiser tes données pour pouvoir retrouver ta valeur par un Recherchev(), lui fonctionne sur un classeur fermé.

eric

Bonjour,

Si c'est pour une seule cellule tu peux faire une copié puis dans le fichier de destination un collage spécial "Avec liaison".

(Le classeur de destination sera automatiquement à jour à l'ouverture si le classeur source est ouvert lui aussi. )

Bonjour Eriiic

si tu peux organiser tes données pour pouvoir retrouver ta valeur par un Recherchev(), lui fonctionne sur un classeur fermé.

En effet. Est-ce vrai aussi pour equiv et index ? (je 'ai pas essayé)

Bonjour Steelson,

oui, c'est bon pour Index() et Equiv() aussi.

eric

Merci pour vos réponses.

Le problèmes étant que les données cibles sont sur plusieurs fichiers. Pour donner plus de détails (très simplifié) si je colle un import de donnes de janvier 2019. Il devra prendre les résultats dans un fichier qui s'appelle .xxxxx01.19. quand je vais coller l'import de février il faudra qu'il prenne xxxxx02.19.

Le but était de pourvoir changer l'adresse des donnees dossiers etc via une formule... Donc recherchev et index equiv ne m'aide pas dans ce cas là (si je ne dis APS de bêtises) mais merci quand même

Impossible de répondre avec des renseignements aussi vagues.

Je comprends Eric, un exemple est toujours plus parlant. En voici un dans le fichier joint

Merci

2classeur1.xlsx (17.58 Ko)

J'avais compris que c'était la cellule voulue qui changeait, pas le chemin.

Donc là non, ça ne va pas.

eric

Donc solution macro (simple)

en effet il va me rester plus que ça

Je ne m'y connais pas du tout en VBA quel serait le code s'il vous plait le plus simple possible ?

Merci encore

Exemple simple ... 2 lignes !

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub
    Range("B2").FormulaR1C1 = "='" & ThisWorkbook.Path & "\data\[" & Range("B1").Value & ".xlsx]MaFeuilleSource'!R5C5"
End Sub

à adapter chez toi.

L'idée est juste de ré-écrire la formule avec la nouvelle valeur de la variable !

Merci beaucoup Steelson je vais essayer d'adapter ça

Rebonjour,

Après maints essais je n'ai pas réussi à adapter le code VBA. J'ai fait un fichier Excel explicatif (ci-joint) afin de voir exactement ce que je désire.

Si je ne suis pas clair n'hésitez pas à m'en faire part.

Merci encore

4 "mmmm" suffisent au lieu de "mmmmmmmmmmmmm" !

Et en Français, les majuscules sont accentuées !

C'était une tolérance du temps des machines à écrire qui n'avaient pas assez de touches !

L'un des problèmes est que la macro ne réagit qu'à l'introduction de valeurs manuellement.

Je vais donc adapter pour tenir compte de la formule "=aujourdhui()"

Peux-tu donner un fichier de base avec juste une valeur bidon dans K157 que je teste la solution ?

En effet, la formule "déclencheuse" n'est pas soumis à une action manuelle. ce qui serait top cest que la macro se déclenche dés que cette case se change de valeur.

Tu trouveras un fichier bidon avec ma cas K157 mouvementé ci-joint.

Merci encore

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("N9")) Is Nothing Then Exit Sub
    lien = "'K:\Comptabilite\DAILY REPORT\Daily XXXX\[YYYY-NEW DAILY - ZZZZ XXXX.xlsm]Rapport Mensuel'!$K$157"
    lien = Replace(lien, "XXXX", Range("N11"))
    lien = Replace(lien, "YYYY", Range("N12"))
    lien = Replace(lien, "ZZZZ", Range("N14"))
    Range("D12").FormulaLocal = "=" & lien
End Sub
Rechercher des sujets similaires à "reference externe dynamique formule adresse"