gesthelp
Messages postés2Date d'inscriptionmercredi 5 novembre 2014StatutMembreDernière intervention 6 novembre 2014
-
5 nov. 2014 à 15:19
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
6 nov. 2014 à 10:07
Bonjour la communauté,
Je viens vers vous après des jours de recherches infructueuses (plusieurs développeurs sur le coup !)
Notre problème est le suivant :
On a un programme Console en VB.net qui pilote Word, et sur l'instruction ....addoleObject(...) le programme plante.
Le message d'erreur est "L'exception COMException n'a pas été gérée" ainsi que "La commande a échoué"
Pas plus d'explications :( on a bien un numéro d'erreur -2146824090 mais on ne trouve aucune piste sur le net (forums, MSDNA, etc.)
POURTANT, si le poste possède word 2007, cela fonctionne sans soucis.
Voici l'instruction en cause => Word1.Shapes.AddOLEObject(FileName:=fichierTemporaire, LinkToFile:=False)
On offre avec grand plaisir le café à qui pourra nous fournir la solution ou des pistes de reflexions auquelles nous n'aurions pas pensé :)
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 5 nov. 2014 à 18:04
Bonjour,
Ta question relève plus de VBA (tu es ici dans la section VB.Net) que de VB.Net
De mémoire : la collection à laquelle doit être ajouté un objet OLE est la collection InlineShapes et non la collection Shapes
gesthelp
Messages postés2Date d'inscriptionmercredi 5 novembre 2014StatutMembreDernière intervention 6 novembre 2014 6 nov. 2014 à 08:45
Merci pour vos réponses.
J'ai effectivement ajouté quelques références au projet, notamment Microsoft Office 15.0 Object library (COM)
Microsoft Word 15.0 Object library (COM)
Microsoft Visual Basic for Application Extensibility 5.3 (COM)
Mais j'avais déja besoin de ces librairies pour faire fonctionner mon programme avant d'ajouter cette instruction qui pose problème. Je n'ai donc pas touché au paramétrage des références dans un premier temps (ensuite j'avoue que j'ai tenté de les retirer, puis de les rajouter, pensant effectivement à un problème à ce niveau)
Je pensais coder en vb.net et non en VBA, sachant que j'ai besoin du framword .net pour que mon programme tourne.
Dois-je faire quelque chose ? stoper ce topic et le reprendre dans l'autre section ?
En attendant vos réponses, je vais arrêter de taper "VB.net" mais "VBA" dans mes recherches pour voir ce que cela donne.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 Modifié par ucfoutu le 6/11/2014 à 10:23
J'ai bien compris que tu pilotes Word depuis VB.Net.
Un tel pilotage, toutefois, ne peut, par définition, que découler de tes connaissances en VBA/Word, puisqu'il consiste en :
- créer( des objets Word
- leur appliquer du code VBA (à nécessairement connaître, donc)
Tu as donc raison de décider d'effectuer tes recherches en VBA d'abord.
PS : Par ailleurs : plutôt que d'utiliser des références à Word, je choisirais à ta place de créer depuis VB.Net un objet Word en liaison tardive ("late binding") avec CreateObject. L'avantage ? ===>> être ainsi certain de créer un objet Word correspondant à la version Office installée sur la machine d'accueil.
lire ceci :
http://msdn.microsoft.com/en-us/library/7t9k08y5%28v=vs.90%29.aspx
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend