Problème COM sur windows 7

Le Forum Windows Seven

Problème COM sur windows 7

Messagepar TorTukiTu » 16 Juin 2010, 08:42

Bonjour à tous,
j'espère que je poste au bon endroit et que vous pourrez répondre à ma question.

Je cherche à modifier des feuilles excel en php. Les classeurs contiennent des macros VBA afin de les signer numériquement. Après m'être renseigné, j'ai appris que phpExcel ne gérait pas les macros vba lors de la manipulation des fichiers.
J'ai donc du me débrouiller avec l'objet Miscrosoft COM.

Le souci: Le script fonctionne parfaitement sur une machine, mais plante sur l'autre. Vous trouverez ci dessous le message d'erreur et le code utilisé:

Message d'erreur:
Code: Tout sélectionner
Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Office Excel<br/><b>Description:</b> Microsoft Office Excel ne peut accéder au fichier « C:\Program Files (x86)\xxx\www\documents\xlsTemplates\command.xls ». Plusieurs raisons possibles : • Le nom du fichier ou le chemin n'existe pas. • Ce fichier est actuellement utilisé par un autre programme. • Le classeur que vous essayez d'enregistrer porte le même nom qu'un classeur actuellement ouvert.' in C:\Program Files (x86)\xxx\www\xlsbParserMan.php:52 Stack trace: #0 C:\Program Files (x86)\xxx\www\xlsbParserMan.php(52): variant->Open('C:\Program File...') #1 C:\Program Files (x86)\xxx\www\xlsbParserMan.php(146): xlsbParserMan->parseXlsb2('239') #2 C:\Program Files (x86)\xxx\www\admin_actions.php(9608): xlsbParserMan->makeFile('239') #3 C:\Program Files (x86)\xxx\www\order_list_po.php(48): generate_po_form('239', 'xls.9', '', false) in C:\Program Files (x86)\xxx\www\xlsbParserMan.php on line 52

Ce message est une exception de COM. Le plantage a lieu dès que j'essaye de lire ou d'écrire un fichier sur le disque avec une application Excel ou Word lancée avec COM.

J'ai vérifié plusieurs fois, le fichier indiqué par le message d'erreur existe bel et bien et est accessible. Quand au classeur déjà ouvert, ça me paraît improbable, étant donné que je fais un Close() juste avant. Je suppose par conséquent qu'il pourrait s'agir d'un problème de permissions. [Je précise que j'ai testé sous Vista et Seven]

J'ai eu beau me renseigner à droite à gauche, je ne voit toujours pas la solution.

Voici ce que j'ai testé:
- Placer le fichier à la racine et mettre le chemin en dur dans le script: Même erreur.
- Changer les permissions en le mettant totalement accessible en lecture / écriture par tous: Même erreur.
- Vérifier ce qui se passe quand le fichier n'existe vraiment pas : J'obtiens alors un autre message d'erreur.
- Essayer de faire lire un fichier dans les Documents : Même erreur.

Pourquoi est-ce COM marche parfaitement sur une machine et pas sur l'autre?

Merci beaucoup d'avoir pris le temps de me lire.
J'attends vos suggestions.
TorTukiTu
 

Retour vers Windows 7

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

  •  Liens commerciaux