Bonjour,
Je viens de passer toute une magnifique journée a essayer de fabriquer une DLL en C# que je pourrais appeler via Excel 2003 en VBA. Voila ou j'en suis :
- Je crée un un projet de type Librairie dans VS.
- Il semble qu'a partir d'Excel 2007, d'autres moyens existent, mais pour 2003, je dois utiliser une DLL COM. Je vais donc dans les proprietes de mon projet, et je coche "Make assembly COM-visible", puis dans l'onglet Build je coche "Register for COM interop".
Je construit une classe toute bete pour tester... disons :
Je compile tout ca, et je lance Excel. Dans mon VBA, je vais chercher mon fichier .tbl et y ajoute une reference et ... ca marche!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 [ClassInterface(ClassInterfaceType.AutoDual)] public class Class1 { public string Pouet() { return "Pouet"; } }
Oui oui, ca marche.
Donc tout content, je copie ma DLL et mon fichier Excel sur le réseau, je lance devant mon patron... et naturellement a ce moment la, rien ne marche!
Run-time error: Activex component can't create object
En cherchant un peu, j'ai découvert qu'il faut "enregistrer" la DLL localement sur les machines utilisateurs, a l'aide du programme RegAsm.exe...
Et lorsque je fais ca, l'erreur devient "Automation Error"
Hum......
Fin, voila vous pouvez constater mon etat d'esprit ^^
Une idée?
PS: Désolé pour les accents, y en a pas dans ce pays -_-
Partager