PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Erreur 800A16E6 fusion word
Erreur 800A16E6 fusion word
Débuté par Miguel, 22 aoû. 2014 16:22 - 8 réponses
Membre enregistré
46 messages
Posté le 22 août 2014 - 16:22
Bonjour,

J'ai développé un module de fusion word dans une application qui fonctionne parfaitement sur ma machine équipé de windows 7 et word 2003, or chez ma cliente qui possède une machine équipé de windows 8 et de word 2010 l'application plante et me renvoie ceci :

Vous avez appelé la méthode Automation 'Close'.
En tentant d'invoquer la méthode <Close> ou de lire la propriété <Close>, l'objet Automation/ActiveX a renvoyé l'erreur suivante :
'Erreur 800A108D : Cette commande n'est pas disponible.'
En tentant d'invoquer la méthode <Close>, l'objet Automation/ActiveX a renvoyé l'erreur suivante :
'Erreur 800A108D : Cette commande n'est pas disponible.'
En tentant de lire la propriété <Close>, l'objet Automation/ActiveX a renvoyé l'erreur suivante :
'Erreur 800A16E6 : 'Close' n'est pas une propriété.'
En tentant d'écrire la propriété <Close>, l'objet Automation/ActiveX a renvoyé l'erreur suivante :
'Erreur 800A16E6 : 'Close' n'est pas une propriété.'

Et voici le code utilisé :

mail>>Documents>>Open(wnomcopie,OLEFalse,OLEFalse)
Multitâche(-50)
mail>>Application>>Run("Macro2")
Multitâche(-50)
mail>>Printout()
Multitâche(-100)
mail>>Documents>>Close(OLEFalse)
mail>>Quit()


La fusion fonctionne parfaitement mais le document reste ouvert or il devrait se fermer.
Après lecture de différent post traitant le sujet je ne vois pas d'ou vient mon erreur.
Pourriez vous m’éclairer?

Cordialement
Membre enregistré
344 messages
Popularité : +24 (28 votes)
Posté le 25 août 2014 - 09:55
moi dans mes code je fais ceci
QUAND EXCEPTION DANS
word>>ActiveDocument>>Close(Vrai)
Multitâche(TempoMultitacheOle)
FAIRE
ExceptionActive()
GOTO sortieword // c'est efficace mais pas très propre
FIN

il faut aussi que tu testes avec la version de word mis en cause.
Je sais c'est facile à dire mais peut être pas facile à acheter
Il existe une version de word 2010 gratuite voir article :
http://www.windows8facile.fr/word-excel-2010-gratuit/
je ne sais pas si tu peux faire des macros pour voir le code qui est généré lors de la fermeture du document.

en espérant t'être utile

--
Bon développement

Alain PETTITI
adresse mail
alainpettiti@orange.fr ( pour celle là il faut bien me connaitre :) )
apettiti@cg06.fr
http://apprentissagewindev.blogspot.com
Membre enregistré
46 messages
Posté le 25 août 2014 - 14:41
Bonjour Alain,

J'ai donc tester sur mon poste avec deux version différentes de word, la version 12 et 14 sans reproduire le problème.
J'ai ensuite refait la même manip sur un autre poste équipé que des versions 12,14 et je n'ai eu aucun soucis non plus.
Je me suis donc installer sur un nouveau poste mais cette fois ci seulement équipé de la version 14 de Word et j'ai bien eu le même message d'erreur.
Il s'agit d'une version d'office télécharger et non d'une version CD, manquerait il une DLL ou autre chose?
Membre enregistré
56 messages
Popularité : +3 (3 votes)
Posté le 25 août 2014 - 15:38
Bonjour,

Dans le MSDN la syntaxe est plutôt :
mail>>Documents(wnomcopie)>>Close(0)

Ce qui ferme le document wnomcopie sans enregistrer les modifications (-1 pour enregistrer sans message).
Membre enregistré
46 messages
Posté le 25 août 2014 - 16:15
Ancoma a écrit :
Bonjour,

Dans le MSDN la syntaxe est plutôt :
mail>>Documents(wnomcopie)>>Close(0)

Ce qui ferme le document wnomcopie sans enregistrer les modifications (-1 pour enregistrer sans message).



Je viens de tester votre solution est cela ne change rien au problème, au contraire cela me provoque une autre erreur.
J'ai également voulu remplacer mon Close(Olefalse) par Close(0) et Close(-1) mais le problème persiste
Membre enregistré
56 messages
Popularité : +3 (3 votes)
Posté le 25 août 2014 - 17:36
Entre la doc MSDN et ce qu'on doit vraiment écrire, j'ai parfois du mal...
As-tu essayée avec la commande suggérée par Alain : mail>>ActiveDocument>>Close(Vrai) ?
Une idée : comme tu fais un mail>>Printout() pour imprimer le document, peut-être que Word refuse de se fermer car il n'a pas finit d'envoyer l'impression ? Mais l'erreur suggère plutôt que la fonction Close() n'existe pas...
Membre enregistré
46 messages
Posté le 26 août 2014 - 10:29
Oui j'ai bien essayé la commande suggérée par Alain et cela n'arrange pas le problème, sur mon poste ou cela fonctionne parfaitement cela provoque l'erreur, j'ai donc testé sur le poste ou l'erreur ce manifeste et le résultat est le même, j'en conclu donc l'hypothèse suivante, cela ne viendrait il pas du paramètre passer dans la fonction close()? Quels sont les autres paramètres que je pourrais y passer?
Membre enregistré
56 messages
Popularité : +3 (3 votes)
Posté le 26 août 2014 - 11:13
Ce sont juste des constantes énumérées :
wdDoNotSaveChanges = 0 (n'enregistre pas, sans confirmation)
wdPromptToSaveChanges = -2 (enregistre avec demande de confirmation)
wdSaveChanges = -1 (enregistre sans confirmer)

Il est possible que quelque part Word remplace le paramètre par défaut et demande quand même une confirmation, va savoir. Ce qui provoquerait une erreur sur un poste et pas sur d'autres. Peut-être aller fouiller sur le poste qui déconne dans les paramètres de sécurité, macro etc de Office ?
Membre enregistré
46 messages
Posté le 26 août 2014 - 11:13
Problème résolu, j'ai voulu tester cette nouvelle ligne de code :

Mail>>ActiveWindow>>Close(Faux)


Cela m'a renvoyé dans l'erreur qu'une boite de dialogue était ouverte, cela concernait les marges d’impression et ça empêchait Word de se fermer. J'ai corrigé mon état Word et cela fonctionne parfaitement.

Merci pour votre aide :merci: