|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : automation add-in : le fichier que vous avez sélectionné ne contient pas de nouveau serveur Automation [ Divers / General ] (otavioreis)
Informations & options pour cette discussion
vendredi 13 juillet 2007 à 11:53:03 |
automation add-in : le fichier que vous avez sélectionné ne contient pas de nouveau serveur Automation

otavioreis
|
Bonjour à tous j'ai crée une bibliothèque de fonctions. Je voulais appeller les fonctions à partir d'Excel (2003). Alors j'ai crée un automation add-in sur Visual Studio. Quand je rentre sur Excel, je vais sur macro complémentaires, j'ajoute la dll (add-in), et tout marche bien sur mon ordinateur. Par contre si je mets la dll sur un autre ordinateur, Excel ne reconnait pas le add-in. En fait, j'avais déjà installé le runtime VSTO. Quand je démande à Excel d'ajouter la macro complémentaire, il me sort un message d'erreur: "le fichier que vous avez sélectionné ne contient pas de nouveau serveur Automation, ou vous ne disposez pas de privilèges suffisants pour enregistrer le serveur Automation" ou "The File you selected does not contain a new Automation Server, or you do not have sufficient privileges to register the Automation Server" . Sur ma machine ça marche normalement... sauf si j'ai un message d'Excel en disant qu'il n'arrive pas à trouver le mscoree.dll. Si je clique sur oui, il perd la réference de la macro complémentaire, puis si j'essaye de trouver et rajouter ma dll, Excel me sort le même message d'erreur. Quelqu'un a une idée, SVP? Comment dois je proceder, SVP? Otavio Reis
|
|
|
mardi 24 juillet 2007 à 20:12:45 |
Re : automation add-in : le fichier que vous avez sélectionné ne contient pas de nouveau serveur Automation

ShareVB
|
salut,
peut être : http://www.codeproject.com/dotnet/excelnetauto.asp
ShareVB
|
|
|
mercredi 25 juillet 2007 à 09:47:50 |
Re : automation add-in : le fichier que vous avez sélectionné ne contient pas de nouveau serveur Automation

otavioreis
|
Salut,
Merci pour l'information... je connais ce site... Si tu suis exactement ce qu'il dit, ça marche pas.
Merci pour la réponse, Otavio Reis
|
|
|
mercredi 25 juillet 2007 à 20:36:05 |
Re : automation add-in : le fichier que vous avez sélectionné ne contient pas de nouveau serveur Automation

ShareVB
|
salut,
personnelement, je viens de tester et ca marche : -> j'ai office 2007 d'installé et visual studio -> j'ai copier ce code dans fichier Functions.cs : using System; using System.Runtime.InteropServices;
namespace NAddIn { [ClassInterface(ClassInterfaceType.AutoDual)] public class Functions { public Functions() { }
public double AjouterAzerty(double v1, double v2) { return v1 + v2; }
public int UnTioTest() { return 34; }
[ComRegisterFunctionAttribute] public static void RegisterFunction(Type t) { Microsoft.Win32.Registry.ClassesRoot.CreateSubKey( "CLSID\\{" + t.GUID.ToString().ToUpper() + "}\\Programmable"); }
[ComUnregisterFunctionAttribute] public static void UnregisterFunction(Type t) { Microsoft.Win32.Registry.ClassesRoot.DeleteSubKey( "CLSID\\{" + t.GUID.ToString().ToUpper() + "}\\Programmable"); } } } -> j'ai définit "Make COM visible" mais pas "Register for COM" -> compilation puis j'ai mis la dll sur le bureau -> regasm /codebase -> dans office 2007 (quand j'ai fini par trouver le gestionnaire de complément), j'ai trouvé mon addin "NAddIn.Functions" -> je l'ai sélectionné, le message "mscoree.dll" est apparu, j'ai répondu "non" -> ensuite en saisissant =AjouterAzerty(3;4) dans une cellule ca marche...
en tout cas, si je fais parcourir puis que je sélectionne la dll, j'ai le message automation truc...
en fait, je pense que sur une autre machine, les comregisterfunction ne sont pas appellées : -> est-ce que tu utilises regasm ? -> si c'est un projet de déploiement, alors il me semble qu'il y a un bug dans l'appel des fonction comregister...
ShareVB
|
|
|
jeudi 26 juillet 2007 à 13:57:33 |
Re : automation add-in : le fichier que vous avez sélectionné ne contient pas de nouveau serveur Automation

otavioreis
|
merci bcp ShareVB. ça fait un mois que je galère avec ça. J'ai posé plusieurs questions par tout et t'es la première personne qui me donne un réponse précise. j'ai résussi çà faire marcher le code sur ma machine. Le gros pb maintenant est de faire l'installation sur une autre machine. Je sais déjà qu'il faut installer le .Net2.0. Là, il y a un petit souci, car le add-in utilise le .NET 2.0 et Excel utilise .NET 1.1. Pour résoudre ce problème, il faut installer le patch office2003-KB907417-FullFile-ENU . Pour que les outils VSTO marchent, il faut aussi installer le runtime vstor .
Si j'essaye d'utiliser regasm, ça ne marche pas. Il ne reconnait pas la dll pour la registrer. Mais je ne sais pas comment résoudre ça. T'as une idée?
Merci inifiniment, Otavio Reis
|
|
|
jeudi 26 juillet 2007 à 22:43:38 |
Re : automation add-in : le fichier que vous avez sélectionné ne contient pas de nouveau serveur Automation

ShareVB
|
salut,
qu'entends tu par "Regasm ne reconnait pas la dll pour la registrer" ? normalement tu fais un projet de déploiement, et tu indiques de l'enregistrer avec regasm dans une custom action...
sinon, tu peux mettre une custom action dans ta dll : using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; using System.Configuration.Install; using System.Windows.Forms; using System.IO; using System.Runtime.InteropServices;
namespace prjIEAddonSample { /// <summary> /// Cette classe est nécessaire d'enregistrer l'assembly en appelant les ComRegisterFunction /// </summary> [RunInstaller(true)] public class TBInstaller : System.Configuration.Install.Installer { //enregistre l'assembly public override void Install(System.Collections.IDictionary stateSaver) { base.Install(stateSaver); RegistrationServices reg = new RegistrationServices(); reg.RegisterAssembly(this.GetType().Assembly, AssemblyRegistrationFlags.SetCodeBase); } //désenregistre l'assembly public override void Uninstall(System.Collections.IDictionary savedState) { RegistrationServices reg = new RegistrationServices(); reg.UnregisterAssembly(this.GetType().Assembly); base.Uninstall(savedState); } } }
ShareVB
|
|
|
vendredi 27 juillet 2007 à 09:17:38 |
Re : automation add-in : le fichier que vous avez sélectionné ne contient pas de nouveau serveur Automation

otavioreis
|
Salut! Merci bcp pour ta réponse.... Je pense que je l'ai fait...regard mon code: using System;using System.Runtime.InteropServices;using Microsoft.Win32;//using Microsoft.VisualStudio.Tools.Applications.Runtime; using Excel = Microsoft.Office.Interop.Excel; namespace AltiaD{ [ ClassInterface(ClassInterfaceType.AutoDual), ComVisible(true)]publicclassFunctions{ public Functions(){ } publicstaticdouble pi = 3.141592654;/// APPROXIMATION DE LA FONCTION DE REPARTITION DE LA LOI NORMALEpublicdouble N(double d){ double a1 = 0.319381530;double a2 = -0.356563782;double a3 = 1.781477937;double a4 = -1.821255978;double a5 = 1.330274429;double N;if (d > 0){ double x = 1 / (1 + 0.2316419 * d);N = 1 - (1 / Math.Sqrt(2 * pi) * Math.Exp(-Math.Pow(d, 2) / 2)) * (a1 * x + a2 * Math.Pow(x, 2) + a3 * Math.Pow(x, 3) + a4 * Math.Pow(x, 4) + a5 * Math.Pow(x, 5));} elseif (d == 0){ N = 0.5; } else{ double x = 1 / (1 + 0.2316419 * (-d));double temp = 1 - (1 / Math.Sqrt(2 * pi) * Math.Exp(-Math.Pow(d, 2) / 2)) * (a1 * x + a2 * Math.Pow(x, 2) + a3 * Math.Pow(x, 3) + a4 * Math.Pow(x, 4) + a5 * Math.Pow(x, 5));N = 1 - temp; } return (N);} /// N'(x)publicdouble N2(double d, double sigma, double r){ double N2 = 1 / (sigma * Math.Sqrt(2 * pi)) * Math.Exp(-Math.Pow(d - r, 2) / (2 * Math.Pow(sigma, 2)));return (N2);} // CALCUL DU PRIX D UN CALL PAR BLACK&SCHOLESpublicdouble call(double s, double k, double r, double t, double sigma, double d){ double call;t = t / 365.25; double st = s * Math.Exp(-d * t);double d1 = 1 / (sigma * Math.Sqrt(t)) * (Math.Log(st / k) + (r + 1 / 2 * Math.Pow(sigma, 2)) * t);double d2 = d1 - sigma * Math.Sqrt(t);call = st * N(d1) - k * Math.Exp(-r * t) * N(d2);return (call);} // CALCUL DU PRIX D UN PUT PAR BLACK&SCHOLESpublicdouble put(double s, double k, double r, double t, double sigma, double d){ double put;t = t / 365.25; double st = s * Math.Exp(-d * t);double d1 = 1 / (sigma * Math.Sqrt(t)) * (Math.Log(st / k) + (r + 1 / 2 * Math.Pow(sigma, 2)) * t);double d2 = d1 - sigma * Math.Sqrt(t);put = -st * N(-d1) + k * Math.Exp(-r * t) * N(-d2);return (put);} [ ComRegisterFunctionAttribute]publicstaticvoid RegisterFunction(Type t){ Microsoft.Win32. Registry.ClassesRoot.CreateSubKey("CLSID\\{" + t.GUID.ToString().ToUpper() +"}\\Programmable"); } [ ComUnregisterFunctionAttribute]publicstaticvoid UnregisterFunction(Type t){ Microsoft.Win32. Registry.ClassesRoot.DeleteSubKey("CLSID\\{" + t.GUID.ToString().ToUpper() +"}\\Programmable");} } } Otavio Reis
|
|
|
vendredi 27 juillet 2007 à 21:01:43 |
Re : automation add-in : le fichier que vous avez sélectionné ne contient pas de nouveau serveur Automation

ShareVB
|
salut,
ton code me semble OK, seulement, je pense que ton projet de déploiement n'appelle pas les comregisterfunction ce qui fait que tu ne vois pas l'addin...normaleme, regasm.exe fait tout bien mais je ne sais pas si tu peux l'utiliser sans le SDK de développement...j'ai eu des prb avec les projets de déploiement qui ne semble pas appeler à tous les coups les comregisterfunction...
donc si tu emploies un projet de déploiement (ce que je te conseilles), tu ajoutes une classe Installer dans ta dll, tu copies le code de mon précédent post à la place du code généré dans la classe installer, dans ton projet tu ajoutes une custom action pour Install et Uninstall en laissant InstallerClass = True...
ShareVB
|
|
|
lundi 30 juillet 2007 à 14:40:46 |
Re : automation add-in : le fichier que vous avez sélectionné ne contient pas de nouveau serveur Automation

otavioreis
|
Salut,
Merci pour ta réponse ShareVB! Je pense que t'as raison. Mon déploiement n'appelle pas les comregisterfunction. J'ai crée un setup Project, puis j'ai insérer une classe nomée Installer. Ensuite j'ai copié ton code. Par contre, je n'ai pas trouvé le InstallerClass = True. C'est quoi ça? Une autre question: Dans le custom action, je demande d'ajouter une action personalisée sur installer. Il m'ouvre les options suivantes: 1. Bureau de l'utilisateur; 2. dossier d'application; 3. Menu Programmes de l'utilisateur. A partir de là je ne sais pas quoi faire. Merci bcp pour ton aide, Otavio Reis
|
|
|
lundi 30 juillet 2007 à 22:54:46 |
Re : automation add-in : le fichier que vous avez sélectionné ne contient pas de nouveau serveur Automation

ShareVB
|
salut,
1) Installer = true c'est une fois que tu as crées ta custom action sur Install et Uninstall, c'est dans les propriétés de la custom action sélectionnée
2) "1. Bureau de l'utilisateur; 2. dossier d'application; 3. Menu Programmes de l'utilisateur", c'est un peu comme un OpenFileDialog...tu vas dans "dossier d'application" et tu cliques sur "sortie primaire..."/"Primary output from ton_projet"...et là ca t'ajoutes une custom action sur laquelle tu vérifies le Installer = true dans les prop...
ShareVB
|
|
|
Cette discussion est classé dans : excel, serveur, add, in, automation
Répondre à ce message
Sujets en rapport avec ce message
EXCEL ADD-IN [ par ricomiracle ]
Voila mon problème:Je crée un ADD-IN que je souhaite utiliser avec Excel pour remplir le classeur avec des données provenant d'une autre appli.Erreur
Add-in Excel [ par SoftReport ]
Bonjour à tous.Je suis en train de créer un Add-In pour Excel en VB.Net. Tout se passe parfaitement sauf que je ne sais pas comment créer des fonction
créer mon add-in [ par refaat ]
bonjour à vous tous,je voudrais créer un add-in dans excel 2003, c'est tout!lorsque je charge excel, je veux que l'add-in soit dans le menu.comment fa
SQL dans outlook add-in [ par Zachs ]
Hello comment fait-on pour faire une connexion a une base de données SQL avec un projet Outlook add-in?Merci d'avance (^o^) (x_x) (o_o*)
Etats sur Oracle developper [ par azahiri ]
Salut les amis, j'ai une application sur vb6 et les données sont stockés sur un serveur oracle, l'appli fait le traitement et pour l'impression j'ai
Add-In Toolbar [ par petchy ]
bonjourje ne trouve plus la commande Add-In Toolbar dans le Gestionnaire de compléments.y a t'il un composant à installer mercipetchy<img src="/imgs2/
Impossible de charger les composants Add-in VB [ par Celidja ]
Bonjour à tous,suite à un problème de crash de HD, j'ai reistaller XP ansi que tous mes programmes.Mais j'ai constaté qu'avec VB6, je ne savais plus c
Erreur avec une dll en utilisant une automation avec Excel [ par roda ]
J'ai créé une automation entre Access 97 et Excel 97.Sur la majorité des poste tout fonctionne sauf quelqu'uns. Je m'explique : Lorsque je lance mon a
Automation Excel : Document non enregistré [ par jay49 ]
Bonjour,J'ai un gros problème avec mon automation Excel.Je faisais mes tests sur Office 2000 et tout marchait bien.Mais désormais, il faut passer sur
Excel: Sélection de "Names"par feuille [ par salley ]
Bonjour, Je souhaite créer un macro permettant, pour chaque onglet d'un fichier Excel de: - Sélectionner l'onglet - Aller dans chaque noms de plage
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|