Bonsoir,
J'ai un classeur de code (A) qui me crée un classeur de résultats (B) et y écrit du code.
Le classeur A me sert de ressource. Aussi pour rendre le classeur A accessible depuis le classeur B, j'ai ajouté une référence au projet visual basic de mon classeur B qui pointe vers le classeur A.
Pour pouvoir faire cela, je suis obligé de renommer le projet VBA de mon classeur B autrement que "VBAProject" et l'objet microsoft excel "ThisWorkBook" autrement que "ThisWorkBook" car sinon au moment d'ajouter la référence à mon classeur A, le code plante parce qu'Excel détecte deux projets VBA ainsi que 2 "ThisWorkBook" se nommant de la même façon.
Quand le programme a fini de s'exécuter, le classeur B est sauvegardé, et le classeur A fermé et l'application quittée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ClasseurRes.VBProject.Name = "CodeClasseurRes" ClasseurRes.VBProject.VBComponents("ThisWorkbook").Name = "VBProjClasseurRes" ClasseurRes.VBProject.References.AddFromFile (ClasseurCode.FullName)
Quand je réouvre le classeur B "à la main" avec Excel 2000, Excel plante et j'ai le message d'erreur "Excel a rencontré un problème et doit fermer".
Quand j'ouvre le même fichier avec Excel 2003, je n'ai pas ce problème.
Ce qui semble poser problème c'est le renommage du projet VBA et de ThisWorkBook.
Je vais essayer de les renommer comme un classeur par défaut dans la procédure BeforeClose du classeur B.
Mais si quelqu'un a d'ores et déjà une idée qu'il ne se gêne surtout pas.
Merci.
Partager