Microsoft 365 Changer la référence de liaison par macro

AntoineB

XLDnaute Nouveau
Bonjour,

Problématique : Pour la gestion de nos projets, nous avons un dossier appelé MODEL que le gestionnnaire de projets copie et renomme d'après des variables liés au projets. Dans le dossier modèle, il y a plusieurs classeur excel modèle qui sont renommé en même temps. Dans l'un de ces classeurs, il y a des liaisons vers un autre classeur dans ce même dossier modèle sous la forme d'un tableau.



Lorsque le dossier model est renommé, la liaison est maintenant brisé et il me donne un datesource.error. Je cherche à créer une macro qui va mettre la source de donnée de cette liaison à partir d'une variable, pour qu'il y ait aucune manipulation humaine à faire, dès l'ouverture du classeur.
1580160049635.png

Exemple :

Chemin d'accès de la source de la donnée déjà inclus au classeur : P:\2- Projets\2020\MODEL\XXXX-XXX - Gestionnaire de RPC.xlsm

Nouveau chemin d'accès de la source de la donnée : P:\2- Projets\2020\2020-001 - MSAM - TEST (SEA54154) - Sainte-Angèle-de-Mérici\7- Contrôle de la qualité\1- Rapports de chantier\2020-001 - Gestionnaire de RPC.xlsm

Je ne sais pas quelle fonction ou propriété utilisé pour changer ça. J'ai essayé avec l'enregistreur de marcro mais il n'affiche rien. Par contre, je suis capable de créer une nouvelle connection à une source de donnée macro en utilisant une Querry.add et en utilisation une variable pour le chemin d'accès. J'ai essayé de recréer avec les mêmes paramètres et d'écraser la connection existante mais il émet une erreur. Changelink peut-il être une option? J'ai cherché beaucoup sur internet mais il n'y a pas beaucoup d'exemple bien documenté pour que je comprenne et puisse l'adapter à mes besoins.

Est-ce que quelqu'un aurait une proposition de macro simple? Je vais adapter ensuite pour lui faire tenir compte de ma variable

P.s. Je sais qu'il y a des accents dans mes chemins d'accès.
 

AntoineB

XLDnaute Nouveau
Bonjour,

Je vous remercie du lien. À partir de celui-ci en fouillant google, j'ai trouvé une méthode plus simple sur ce lien. Cela me permet désormais de changer ma référence à partir d'une cellule excel où mon code vba met le chemin d'accès absolu à chaque ouverture du workbook.

 

goube

XLDnaute Impliqué
Bonsoir,

J'ai essayé de reproduire ce tuto, cela bloque sur la partie power pivot.

As tu réussi à récupérer la chaine de connexion dans power query et l'intégrer dans power pivot.
Pour moi, dans power query, je n'ai pas accès à la chaine de connexion, elle reste grisée. (je suis sur excel 2019).
Cordialement.
 

AntoineB

XLDnaute Nouveau
Ce que j'ai fais, c'est créer une fonction comme expliqué dans le tuto et ensuite changer la source (qui était un chemin d'accès pointant vers le chiffrier excel) pour une variable menant à la fonction.

Jumelé à ça, j'ai une macro qui met à jour le chemin d'accès à chaque ouverture du chiffrier, dont la fonction va chercher la valeur pour la stocker dans la variable utilisé dans la source.

Par contre, j'ai galèré pendant quelques heures avant de comprendre la logique de code de Power Query. Je ne connais pas Power Pivot par contre.

Création d'un onglet et du code vba de mise à jour à l'ouverture
1580316803424.png


Création de la fonction

1580316899629.png


Modification du code de la connexion

1580316964832.png
 

goube

XLDnaute Impliqué
Bonsoir,

Merci pour ta réponse. J'ai réussi la première partie concernant Power Query, là où je coince c'est sur la partie Power Pivot. La récupération de la chaine de connexion dans PQ reste grisée, et même recopiée dans PP cela ne fonctionne pas.
Mais cela n'est pas bien grave. Le plus important est la possibilité de changer la source de la requête.
Bonne continuation,
Cordialement.
 

Discussions similaires

Réponses
5
Affichages
376

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG