Microsoft.Office.Interop.Exel. Version=14.0.0.0

Résolu
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 - 14 août 2013 à 14:12
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 8 avril 2015 à 11:55
Bonjour à tous,

J'espère poster au bon endroit...

Un programme "appelle" Excel pour une partie de ses calculs. Aucun problème, lorsque Excel 2007 ou 2010 est installé. Mais j'ai une flotte de PC sous XP avec MS Ofiice Excel 2003 (SP3) et cela nécessite Microsoft.Office.Interop.Exel. Version=14.0.0.0.

J'ai pas mal lu et essayé divers "download", mais je ne suis pas arrivé à régler le problème pour "charger" Microsoft.Office.Interop.Exel. Version=14.0.0.0 dans les "références" afin de pouvoir faire tourner Excel 2003, sans installer 2007 ou 2010.

Mais peut-être est-ce tout simplement impossible...

Merci de votre aide.

Cordialement.

7 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 août 2013 à 14:40
Salut

"J'espère poster au bon endroit..."
Tout dépend ce que tu programmes !
Si tu es dans le VBA de Excel, alors oui.
Si tu es dans Visual Studio 2005, 2008, 2010 ou 2012 : alors non, c'est du VB.Net

As-tu essayé l'inverse : Mettre l'Interop de la version la plus vieille et programmer avec ?
Je pense que Office 2007 ou 2010 pourra faire fonctionner une version antérieure.
Je ne sais pas si c'est possible en .Net, mais regarde voir du côté de CreateObject ou GetObject : Peut-être y a-til moyen de ne pas préciser la version en faisant du 'late binding' en ne déclarant ton objet Excel "As Object" sans déclarer son type.
(je n'en ai pas l'expérience en .Net)

Vala
Jack [MVP VB]
NB : Je ne répondrai pas aux messages privés
0
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 1
14 août 2013 à 16:29
Bonjour Jack,
Re bonjour à tous,

Oui, oui, c'est bien du VBA de Excel 2003 (Office pro 2003-SP3).

Que veux-tu dire exactement par " Mettre l'Interop de la version la plus vieille et programmer avec ?" ?
Le pack o2003pia.msi est bien sûr installé.

Sans conviction, j'ai aussi lancé l'installation de o2010pia.msi, alors que Office /Excel 2010 n'est PAS installé...

Evidemment, lorsque le programme appelle Excel pour y charger des données, l'erreur est toujours là...

J'espérais pouvoir charger une "référence" dans les outils VB, mais, si je comprends, il n'y aurait pas d'autre solution que d'installer (acheter sur 500 PC équipés en 2003 !) Office/Excel 2010 ?

Je donne ma langue au chat...

Cordialement
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 août 2013 à 22:21
Non
Si tu fais du VBA sous Excel 2003, tu peux les exécuter/lire sous Excel 2007/2010 sans trop de problème - juste quelques aménagements éventuels.
Le principal étant de programmer avec la référence à la version d'Excel la plus vieille.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 août 2013 à 22:23
Si tu es sous Excel 2003, pourquoi aurais-tu besoin d'ajouter des références ?
Non; fais un fichier XLS classique et ouvre-le sous 2007/2010 : il le reconnaitra.
0
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 1
15 août 2013 à 09:19
Bonjour,

Le programme qui "appelle" Excel a été écrit pour Excel 2010 et "cherche" donc "Microsoft.Office.Interop.Exel. Version=14.0.0.0. etc.".

Bien entendu, si Excel 2010 est installé sur le PC, pas de problème. Mais que néni avec Excel 2003...

En plus, je ne sais pas comment Excel est "appelé" et "chargé" par ce programme...

J'aimerais au moins comprendre ce que fait exactement l'installation de o2010pia.msi : Quels sont et où sont les fichiers créés (dll...?). Ce que j'ai lu chez MS est peu clair pour moi.

Je crains n'avoir que 2 solutions extrêmes :
- Faire ré-écrire le programme pour qu'il prenne AUSSI en compte Excel 2003...
- Installer Excel 2010 sur tout le parc PC...

Je ne dois pas être le seul confronté à ce problème, mais je n'ai toujours pas trouvé de réponse à ces questions, et encore moins de solution.

Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 août 2013 à 10:06
Je ne connais pas o2010pia.msi
Les "Interop" sont fait, à mon point de vue, pour permettre à un langage d'interagir avec des objets.
Alors oui, pourquoi pas les utiliser pour travailler avec des objets Excel 2010 depuis Excel 2003, mais ça s'arrête là; à la manipulation d'objets - tu ne pourras pas afficher des feuilles Excel 2010 sous 2003, par contre, tu dois pouvoir ouvrir un classeur 2010, lire le contenu des feuilles, mais je ne pense pas que tu puisses lancer les macros de ce classeur 2010.

Mais qu'est ce qui t'empêche de sauvegarder ton classeur avec macro dans un fichier XLS = version 2003 ?
Il te suffit de parcourir les macros du classeur qui appelle pour repérer l'appel et changer l'orthographe du nom du classeur appelé (XLSM en XLS)

A chaque réponse que tu donnes, on découvre de nouvelles facettes à ton problème : Maintenant, il y a deux classeurs.
Si tu n'expliques pas tout clairement, on va jamais y arriver.
La solution de facilité consiste à programmer avec des classeurs version 2003.
Pourquoi ne le fais-tu pas ?
0
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 1
15 août 2013 à 10:48
Je m'explique peut être mal.

Je reformule :

1° Il n'y a qu'un seul classeur concerné, créé sous Excel 2003, donc en .xls. (Toto.xls)

2° Un programme Tutu.exe écrit sous StateWORKS doit charger des données dans une feuille de Toto.xls.

3° Tutu.exe a été conçu pour des classeurs Excel 2007/2010, et donc a besoin de "Microsoft.Office.Interop.Exel. Version=14.0.0.0..."

4° Si Excel 2007/2010 est bien installé sur le PC, aucun problème, Toto.xls est correctement chargé.

5° Si c'est uniquement Excel 2003 qui est installé sur le PC, évidemment, l'erreur se produit, puisque "Microsoft.Office.Interop.Exel. Version=14.0.0.0..." n'est pas trouvé.

Je cherche à savoir s'il serait possible, et comment faire pour que Tutu.exe charge les données dans Toto.xls quand seulement Excel 2003 est installé sur le PC.

Est-ce plus clair ainsi ?

Ta remarque "La solution de facilité consiste à programmer avec des classeurs version 2003" est certes très judicieuse, mais avant de solliciter le développeur de Tutu.exe, je voudrais essayer de trouver d'autres solutions.

Cordialement
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 août 2013 à 11:43
Ah, c'est plus clair, en effet.

Normalement, si le programme Tutu.exe est correctement conçu et installé, du moment où il a besoin d'accéder à des infos issues de Office, c'est lui qui devrait amener les références nécessaires.
Es-tu sûr de la méthode d'installation du logiciel sur les différentes machines ?
En général, ce genre de référence est mise en place lors de l'installation.

Peut-être pourrais-tu demander conseil aux développeurs de Tutu.exe; si c'est un logiciel diffusé à grande échelle, ils ont forcément déjà eu le cas de figure.
0
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 1
7 avril 2015 à 20:46
Bonjour,

Je sais, ça fait un bail!
Je confirme que traiter directement dans Excel par le biais de bibliothèque n'est pas une mince affaire, surtout quand on veut pouvoir utiliser toutes les versions depuis 2003!

La seule solution que j'ai trouvée est de passer par un fichier d'échange des données sous format .txt, qui est lui appelé sans problème par Excel à son ouverture.
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
8 avril 2015 à 11:55
bonjour CerberusPau,

Dans une appli hta, j'avais contourné le problème de version par
Function CheckExcelVersion(argFile)
' Contrôle version Excel
If CreateObject("Excel.Application").Version = "11.0" Then
argFile = Replace(argFile,".xlsx",".xls")
End If
CheckExcelVersion = argFile
End Function
0
Rejoignez-nous