cs_FeuilleMorte
Messages postés14Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention15 juillet 2008
-
2 avril 2003 à 11:48
gribette
Messages postés1Date d'inscriptionmercredi 9 juillet 2008StatutMembreDernière intervention14 octobre 2009
-
14 oct. 2009 à 14:36
J'ai toujours mon probleme lorsque je veux acceder a excel via Delphi.
J'ai bien ajouter les uses : comobj, variants et même excel 97 ou Excel 2000
Mon code pour acceder a Excel est le suivant :
1)var
2) v_ex : variant;
3)begin
4) v_ex := createOleObject('Excel.Application');
5) v_ex.workbooks.open('c:\test\test.xls');
6) ...
7)end;
Avant ce code fonctionnait très bien dans mon application mais depuis un certain temps j'ai un message d'erreur à l'exécution de la ligne 4).
Voici le message "Le projet prj_toto.exe a provoque une classe d'exception EOleSysError avec le message 'CoInitialize n'a pas ete appele'. Processus stoppé. Utilisez Pas-a-pas ou Executer pour continuer".
Suite a ce message d'erreur, bete et dissipline j'ai rajouter la fonction CoInitialize mais rien y fait. Je suis oblige de creer dans un projet annexe cette fonction pour me permettre d'accéder à Excel, or je veux conserver tous mes traitements dans le même projet pour faciliter la maintenance de celui-ci.
J'attend vos suggestions car la je commence vraiment à desesperer.
cs_FeuilleMorte
Messages postés14Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention15 juillet 2008 2 avril 2003 à 18:05
Tout d'abord merci d'avoir répondu aussi rapidement.
Mon programme reagi de la meme maniere sur les autres postes et meme avec d'autre version d'Excel. Cependant si je prend mon code et que je l'insert dans un nouveau projet cela fonctionne!!! Je peux toujours opter pour cette solution. Cependant j'aimerai concerver un seul et meme projet pour tous mes modules, mais apparament ca va pas etre possible...
En esperant avoir la solution miracle prochainement,
cs_FeuilleMorte
Messages postés14Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention15 juillet 2008 3 avril 2003 à 09:47
non RDM je n'utilise pas de variant avant le code présent dans mon premier message, et si je fait un variant.quit j'ai également un message d'erreur (normal je pense vu que je n'ai pas reussi a le lancer).
Même avec GetActiveOleObject('Excel.Application'); j'ai le message d'erreur par rapport a CoInitialize.
St@iLeR j'avais deja regarde sur developper.com ou il y a une autre methode pour appeler excel mais elle a ete sans succes (je ne l'ai pas retrouvee sur le site aujourd'hui). Ce que je ne comprend pas c'est qu'avant mon code fonctionnait tres bien mais depuis certaines modifications (qui n'ont rien d'exceptionnel) cette fiche plante. Sur ma fiche j'ai uniquement 2 TDatetimPicker et 2 boutons. Je ne fait aucun traitement avant mon appel au variant (a part l'initialisation de mes dates)
Mon problème est survenu lorsque j'étais encore sous Delphi 5 et le passage a Delphi 6 n'a rien changé (je ne pense pas passer à Delphi 7 pour l'instant).
Je croise quand meme encore les doigts, on ne sait jamais.
cs_FeuilleMorte
Messages postés14Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention15 juillet 2008 3 avril 2003 à 17:20
oui ,
mais comme j'ai un message d'erreur a la premiere ligne :
vMSExcel := CreateOleObject('Excel.Application');
je ne peux pas aller plus loin
J'ai peut etre du a un moment changer quelque chose dans mon projet qui altere ce fonctionnement ...
dominique.stock
Messages postés436Date d'inscriptionvendredi 7 novembre 2003StatutMembreDernière intervention 8 octobre 20087 4 oct. 2005 à 17:45
Tu as du trouver une solution , mais sinon, j'ai eu le même souci .
Dans les options du debogger : j'avais coché "Activer support inter processus COM".
gribette
Messages postés1Date d'inscriptionmercredi 9 juillet 2008StatutMembreDernière intervention14 octobre 2009 14 oct. 2009 à 14:36
Bonjour Dominique,
J'ai rencontré le même problème et je me suis effectivement rappelé avec touché au fonction du débogger.
Après correction de l'item "Activer ...COM", l'application OleExcel Fonctionne parfaitement.