Liens documents Excel
majagypsie
Messages postés
1
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai plusieurs fichiers Excel contenant des résultats de tests que je désire consolider dans un seul et même fichier. Au départ j'ai seulement fait un lien entre le fichier source et la destination ce qui fonctionne très bien tant et aussi longtemps que je ne dois pas réexécuter un des documents.
Est-ce qu'il y a une façon de consolider les données de fichiers Excel sans que les "adresses" restent fixes ou, plutôt, de façon à ce que l'adresse du fichier change si celui-ci est déplacé?
Merci!!! :O)
J'ai plusieurs fichiers Excel contenant des résultats de tests que je désire consolider dans un seul et même fichier. Au départ j'ai seulement fait un lien entre le fichier source et la destination ce qui fonctionne très bien tant et aussi longtemps que je ne dois pas réexécuter un des documents.
Exemple: Document A -> Source; Document B -> Destination.
Si je modifie le contenu du Document A, le Document B sera mis à jour MAIS, si je prends ces 2 documents et les places dans un répertoire d'archive, le Document B conserve le lien avec le Document A comme si celui-ci n'avait pas été déplacé ce qui provoque une erreur.
Est-ce qu'il y a une façon de consolider les données de fichiers Excel sans que les "adresses" restent fixes ou, plutôt, de façon à ce que l'adresse du fichier change si celui-ci est déplacé?
Merci!!! :O)
A voir également:
- Liens documents Excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
1 réponse
Bonjour
dans ton classeur source (classeur1) module Thisworkbook; cette macro mémorise l'emplacement de la source lorsque tu ouvres ce classeur
dans le classeur cible module this workbook, cette macro renvoie sur la feuille active en B2 l'emplacement de la source lorsque tu ouvres ce classeur
Enfin, pour que les liaisons suivent, il faut utiliser la fonction INDIRECT dans tes formules. par exemple valeur de C10 feuil1 du fichier source
on peut également le faire en utilisant la base de registre, mais je ne me souviens plus sur quelle étagère de mon grenier j'ai "rangé" les codes !!! si je trouve (en cherchant autre chose) je te communiques ze codes...
:-x
dans ton classeur source (classeur1) module Thisworkbook; cette macro mémorise l'emplacement de la source lorsque tu ouvres ce classeur
Private Sub Workbook_Open()
Dim chemin As String
chemin = ThisWorkbook.Path
' ("curiosité" trouvée sur le site web de Laurent Longre ("hidden namespace") )
ExecuteExcel4Macro "set.name(""macroxl4"",""" & chemin & """)"
End Sub
dans le classeur cible module this workbook, cette macro renvoie sur la feuille active en B2 l'emplacement de la source lorsque tu ouvres ce classeur
Private Sub Workbook_Open()
Range("B2") = Application.ExecuteExcel4Macro("get.name(""macroxl4"")")
End Sub
Enfin, pour que les liaisons suivent, il faut utiliser la fonction INDIRECT dans tes formules. par exemple valeur de C10 feuil1 du fichier source
=INDIRECT("'"&B2&"\[Classeur1.xls]Feuil1'!$C$10")
on peut également le faire en utilisant la base de registre, mais je ne me souviens plus sur quelle étagère de mon grenier j'ai "rangé" les codes !!! si je trouve (en cherchant autre chose) je te communiques ze codes...
:-x
les fouilles ont réussi !!!
dans classeur source:
dans classeur cible
Private Sub Workbook_Open() 'lecture dans HKey_current_user/software / VB and VBA Program settings Range("B2") = GetSetting(appname:="ccm", section:="gypsie", key:="lieu") End SubEnsuite m^me punition pour la fonction "indirect"
Pour nettoyer la base de registre dans un module de la source
Sub EffacedansRegistre() On Error Resume Next DeleteSetting "ccm" End Subsource: d'après Eric Renaud