Lier tableaux Excel 2010

Bonjour,

J'aimerais lier 2 tableaux ( sous excel 2010 ) pour faire une copie conforme des 4 premières colonnes en utilisant la fonction =INDIRECT("2011!"&ADRESSE(LIGNE(A1);COLONNE(A1))).

Mais je ne trouve pas la démarche à suivre malgré de nombreuses recherches.

Quelqu'un a une idée ?

Bonjour Geoffrey,

Qu'est-ce qui ne marche pas dans ta formule ?

Le problème est que l'onglet 2011 se situe dans une autre tableau stocké à un autre endroit. Je n'arrive pas à lier les 2 tableaux comme sous la version 2000

Peut-être comme ceci ?

=INDIRECT("'C:\Documents and Settings\XXXXXXX\Bureau\[NomFichier]2011'!"&ADRESSE(LIGNE(A1);COLONNE(A1)))

Le répertoire et le nom du fichier sont bien sûr à adapter. Il faut garder les 2 fichiers ouverts.

Effectivement, vu comme ça, je me sens un peu bête de ne pas y avoir pensé

Merci.

Est-il possible que les valeurs se mettent à jour sans avoir besoin d'ouvrir le tableau où il y a les données ?

C'est possible en installant la macro complémentaire Morefunc créée par laurent longre. Parmi les 67 nouvelles fonctions intégrées à cette bibliothèque, tu trouveras la fonction INDIRECT.EXT

Je n'ai jamais mis en place des macros sous excel, j'en ai juste édité quelques unes très sommairement.

Je vais donc cherché cette biblio et essayé de mettre en place tout ça.

Merci pour l'info

Ce qu'on peut faire, c'est qu'à l'ouverture du fichier, on ouvre furtivement l'autre fichier

C'est peut-être pas le plus pratique mais bon...

Effectivement cela pourrait être une bonne solution

Faut-il passer par une macro ? Ou il y a une fonction qui permet de faire ceci ?

Il faut passer par macro. Dans le fichier contenant la formule, mets ce bout de code dans le ThisWorkbook (appuie sur Alt+F11 et double-clique sur "ThisWorkbook" dans la fenêtre de gauche) :

Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    Workbooks.Open Filename:="C:\Documents and Settings\XXXXXXX\Bureau\NomFichier"
    ActiveWorkbook.Close False
End Sub

Le répertoire et le nom du fichier est à adapter.

Le code fonctionne à merveille : les colonnes se mettent à jours en fonction de l'autre tableau.

Cependant, lorsque j'écris dans une cellule ( n'importe ou dans le tableau ), et que j'ai fais "Entrée" pour valider. Les colonnes où il y a la fonction =INDIRECT m'indique #REF!

Tu sais pourquoi ?

Bonjour geoffrey,

Une solution (en plus de la première), est de lancer l'ouverture/fermeture à chaque fois que la feuille ou le classeur effectue un calcul.

S'il n'y a qu'une feuille qui contient la formule, fais un clic droit sur la feuille concernée / Visualiser le code et colles-y le code suivant :

Private Sub Worksheet_Calculate()
    Application.ScreenUpdating = False
    Workbooks.Open Filename:="C:\Documents and Settings\XXXXXXX\Bureau\NomFichier"
    ActiveWorkbook.Close False
End Sub

Si c'est dans tout le classeur, ajoute ce code dans le ThisWorkbook :

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    Application.ScreenUpdating = False
    Workbooks.Open Filename:="C:\Documents and Settings\XXXXXXX\Bureau\NomFichier"
    ActiveWorkbook.Close False
End Sub

Etant donnée que le tableau où il y a les données sources à déjà des liaisons vers un autre tableau. Lorsque je mets ce nouveau code, il me demande sans cesse "Voulez vous mettre à jour les liaisons","xxxx.xls est déjà ouvert...".

Je pense que le premier code devra faire l'affaire car ce tableau va être entièrement être protégé par la suite donc on ne pourra pas éditer les cellules. Juste cliquer sur les liens D'ailleurs j'ai créé un autre topic pour savoir s'il est possible d'afficher les liens dans une cellule uniquement s'ils sont valides. Malgré pas mal de recherche, je n'ai rien trouvé sur le forum à ce sujet ni sur google.

Merci pour ton aide en tout cas

Rechercher des sujets similaires à "lier tableaux 2010"