Ajouter une référence AddFromFile
Bonjour à tous
J'ai l'impression d'être face à un bug de MS Excel 2016 (32 bits et 64 bits car j'ai testé les deux versions) : j'ai une application .xlsm qui utilise un fichier .xlam.
Pour simplifier : Application.xlsm et Library.xlam.
Ces fichiers se situent sur mon disque dur : C:\Dev\Application.xlsm et C:\Dev\Library.xlam
Je dois copier mon fichier sur le dossier de "production" (E:\Prod\) mais bien sûr, il faut que le fichier .xlsm fasse référence au fichier .xlam du disque de production.
En résumé :
* J'ai C:\Dev\Application.xlsm qui référence C:\Dev\Library.xlam
* Je copie les deux fichiers vers le disque E:\Prod\
* J'ouvre le fichier E:\Prod\Application.xlsm pour modifier les références : ne plus utiliser C:\Dev\Library.xlam mais bien E:\Prod\Library.xlam- Je décoche C:\Dev\Library.xlam
- J'ajoute E:\Prod\Library.xlam et c'est bien lui que je vois dans les références
- Je clique sur OK pour fermer la fenêtre des références
* Je sauve mon fichier E:\Prod\Application.xlsm
Mais si j'y retourne, c'est toujours C:\Dev\Library.xlam qui est référencé.
Je recommence, je retire l'ancien, je mets le nouveau, je vérifie, je ferme l'écran des références et j'y retourne de suite : c'est en effet bien C:\Dev\Library.xlam qui reste référencé.
Je viens de passer quelques heures à écrire un code VBS pour faire toute ces opérations, par script, mais là encore, quand je fais le Remove suivi d'un AddFromFile("E:\Prod\Library.xlam"), bardaf, c'est toujours C:\Dev\Library.xlam qui est là.
Le Remove a bel et bien fonctionné puisque si je ne fais pas de AddFromFile, je n'ai plus ma référence.
J'ai le sentiment que Excel utilise un "cache" : il voit que le mot "Library" lui est connu et il utilise la dernière référence utilisée ou quelque chose du genre.
Cela parce que si je renomme E:\Prod\Library.xlam en E:\Prod\DUMMY_Library.xlam (je change donc le nom de la librairie sur le disque), tout est bon. Plus de phénomène de "cache".
Auriez-vous une piste s'il vous plaît ?
Est-ce qu'il y a un moyen de forcer le "refresh" de la liste des références ?
Merci.