none
Office interop version 11 pour une utilisation sous Office 2003/2007/2010 RRS feed

  • Question

  • Bonjour,

    Je débute sous vb.net depuis 4 semaines et je rencontre une difficulté pour exporter des tableaux dans une feuille Excel. Mon poste de dev est sous Vista et Office 2010 que j'ai installé pour mes tests.

    Après avoir fait plusieurs recherche, j'ai vu qu'en récupérant la version 11 de microsoft.office.interop.excel.dll (ainsi que les 2 autres DLL) je pouvais faire fonctionner mon application sous Office 2003 comme sous Office 2010 (qui fonctionne parfaitement en ce moment).

    Pourrais-je savoir où récupérer cette version ? J'ai essayé de récupérer cette DLL sur un des postes de mon entreprise (dans c:\Windows\assembly) mais sans succès. Tous les postes de mon entreprise sont sous Office 2003 mais la version 2010 devrait être installé d'ici la fin de l'année et il faut que mon application puisse fonctionner avant.

    Merci de votre aide.

    jeudi 5 avril 2012 23:39

Réponses

  • Après 3 jours de recherche, voici la solution que j'ai trouvé.

    Mon avantage : mon entreprise dispose de poste équipe d'Office 2003. Si on ouvre l'explorateur de fichier dans C:\Windows\Assembly, on voit les DLL avec leur version mais on ne peut pas les copier.

    Pour se faire, ouvrir une fenêtre de commande Dos. Se positionner dans C:\Windows\Assembly. Faire un "Dir" et observer les répertoires que vous ne pouvez pas voir avec l'explorateur Windows. Puis, se positionner dans le dossier "GAC", puis dans le dossier portant le nom de la DLL recherché, puis dans le dossier enfant (dont le nom commence pas 11.0.0....). Là, on voit la DLL, il suffit alors de faire un COPY *.dll C:\Dll_Interop (où l'endroit que l'on veut).

    Quand la DLL est récupérée, dans Visual Basic, supprimer la référence existante, puis "ajouter une référence" et sélectionner la DLL. Générer le projet et tester.

    Avec cette manipulation, mon application qui la version 2.0 comme Framework cible, fonctionne avec Office 2003/2007/2010 (tester et fonctionnel).

    Voilà. Si ça peut servir à quelqu'un. Je voulais mettre les DLL a dispo, mais apparemment je ne peux pas.

    Bonne journée et bon courage.

    • Marqué comme réponse Guiljour vendredi 6 avril 2012 13:54
    vendredi 6 avril 2012 13:53

Toutes les réponses

  • Bonjour, peut-être http://www.microsoft.com/download/en/details.aspx?id=20923 ? (j'ai cherché "pia 2003" dans Google).

    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    vendredi 6 avril 2012 10:49
    Modérateur
  • Bonjour,

    Je l'avais également trouvé mais l'exe contient un msi que je suis obligé d'installer pour récupérer les DLL. Mais pour l'installer, il faut obligatoirement qu'Office 2003 soit installé, donc je tourne en rond.

    J'ai peut être trouvé une autre solution, mais je n'arrive pas à la mettre en place. Je dois oublier de faire quelque chose (voir le liens ci-dessous dans le paragraphe "Embed Interop Types" ) : http://msdn.microsoft.com/en-us/library/ee336123.aspx

    Si je ne fait pas d'erreur, dans visual basic 2010, il est possible de mettre l'option sur "True" pour que la version de la DLL ne soit pas prise en compte. Ayant la version française, je pense que l'option est "Version spécifique" mais cela ne fonctionne pas. Ou alors la version Express ne prend pas en compte cette option et à ce moment là je reviens sur mon problème de départ qui est de trouvé la dll en version 11.

    vendredi 6 avril 2012 11:57
  • Pour l'option "Embed Interop Types" ("Incorporer les types interop" en Français), cette fonctionnalité n'est disponible qu'avec Visual Basic 2010 et la version 4.0 du Framework Cible.

    Comme je travaille sur une application avec une framework Cible en V2.0, cette option n'existe pas.

    Voilà si ça peut servir à quelqu'un.

    De mon côté je reste toujours avec mon problème d'origine, si quelqu'un à une solution.

    vendredi 6 avril 2012 12:52
  • Après 3 jours de recherche, voici la solution que j'ai trouvé.

    Mon avantage : mon entreprise dispose de poste équipe d'Office 2003. Si on ouvre l'explorateur de fichier dans C:\Windows\Assembly, on voit les DLL avec leur version mais on ne peut pas les copier.

    Pour se faire, ouvrir une fenêtre de commande Dos. Se positionner dans C:\Windows\Assembly. Faire un "Dir" et observer les répertoires que vous ne pouvez pas voir avec l'explorateur Windows. Puis, se positionner dans le dossier "GAC", puis dans le dossier portant le nom de la DLL recherché, puis dans le dossier enfant (dont le nom commence pas 11.0.0....). Là, on voit la DLL, il suffit alors de faire un COPY *.dll C:\Dll_Interop (où l'endroit que l'on veut).

    Quand la DLL est récupérée, dans Visual Basic, supprimer la référence existante, puis "ajouter une référence" et sélectionner la DLL. Générer le projet et tester.

    Avec cette manipulation, mon application qui la version 2.0 comme Framework cible, fonctionne avec Office 2003/2007/2010 (tester et fonctionnel).

    Voilà. Si ça peut servir à quelqu'un. Je voulais mettre les DLL a dispo, mais apparemment je ne peux pas.

    Bonne journée et bon courage.

    • Marqué comme réponse Guiljour vendredi 6 avril 2012 13:54
    vendredi 6 avril 2012 13:53
  • Bonne solution de contournement. Sinon, il faut probablement avoir effectivement sur le poste de développement la version minimale d'Office que l'on vise de façon à pouvoir installer les PIAs correspondants via l'installateur...

    Je n'avais pas compris que c'était un problème de déploiement sur votre poste de développement, je croyais que votre problème était de déployer les PIAs sur les postes Office 2003 de votre entreprise...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    vendredi 6 avril 2012 14:40
    Modérateur