Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word
Word Forum d'entraide sur le traitement de texte Microsoft Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2007, 09h48   #1
Membre du Club
 
Développeur informatique
Inscription : juin 2002
Messages : 171
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2002
Messages : 171
Points : 55
Points : 55
Par défaut word2007 & liberation document

Bonjour,

j'ai écrit 1 petite application OLE qui ouvre 1 modèle Word & le relie avec la base de donnée. L'utilisateur peut alors modifier la présentation.
Je coupe le lien avec Word et J'attends que le document soit libéré pour lancer le publipostage.

Si l'utilisateur clicque pour fermer word sans avoir enregistré ses modifs, il a 1 message "voulez-vous enregistrer le document"...mais word l'a déjà libéré.

Mon programme croit que le modèle a été fermé et lance le publipostage... qui plante car Word ne semble pas disponible tant qu'on a pas répondu à la boite de dialogue ci-dessus.

Le problème de libération n'existe avec aucune autre version de Word.
Le problème de la boite de dialogue qui interdit toute autre action existe dans toutes les versions.
Peut-on désactiver cette libération anticipée dans Word2007, ou comment detecter qu'une boite de dialogue bloque Word ?

merci pour votre aide.
bib34690 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 10h14   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Si tu affectes la valeur True à la propriété Saved, le message devrait ne plus s'afficher.

Il est possible que ce soit le modèle qui ne soit pas encore sauvegardé.

Code :
Documents(1).Saved = True
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 13h50   #3
Membre du Club
 
Développeur informatique
Inscription : juin 2002
Messages : 171
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2002
Messages : 171
Points : 55
Points : 55
c'est l'utilisateur qui clicque...je ne pilote plus word et je ne fais pas de save...
J'ai ouvert le modèle et j'attends simplement qu'il soit refermé...(et les modifications de l'utilisateur enregistrées)

Il est certain que les dernières modifications ne sont pas sauvées puisque c'est pour ça que word pose la question.
Je ne comprends pas à quoi servirait cette option ?
bib34690 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 15h15   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
A faire croire à Word que le document est sauvegardé.

En fait quand tu fais un save, cette propriété est mise à True.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 16h33   #5
Membre du Club
 
Développeur informatique
Inscription : juin 2002
Messages : 171
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2002
Messages : 171
Points : 55
Points : 55
mais alors il ne vas pas sauver les modifs en cours...
bib34690 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 17h43   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
C'est ce que tu demandais non ?

Si tu veux une sauvegarde, tu fais un

Ou alors j'ai rien compris.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 18h45   #7
Membre du Club
 
Développeur informatique
Inscription : juin 2002
Messages : 171
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2002
Messages : 171
Points : 55
Points : 55
je crois que tu ne comprends pas...

je n'ai pas la main sur Word...c'est l'utilisateur qui est en train de modifier son modèle (que j'ai créé avec la macro), et qd il a fini il quitte Word (et veut enregistrer son travail bien sûr)...et la ça lui demande d'enregistrer...

pendant ce temp, mon application (qui n'est pas dans Word) attend que le doc soit libérré pour lancer le publipostage. Est-ce que tu comprends mieux ?
bib34690 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 18h53   #8
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Alors, il faut vérifier que le propriété Saved est bien à True.

Si elle n'est pas à true, c'est que le document n'est pas libéré.

Tu peux aussi lancer une procédure sur fermeture du document.

Ici et c'est Autoclose qui devrait faire l'affaire.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 14h28   #9
Membre du Club
 
Développeur informatique
Inscription : juin 2002
Messages : 171
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2002
Messages : 171
Points : 55
Points : 55
je crois qu'on a 1 pb de compréhension...
comment puis-je vérifier la proprité d'un document sans être dans Word et sans ouvrir le document ? S'il y a 1 solution elle m'interesse...

Quand à gerrer des evenements, ce serait 1 solution, mais comment faire ça ?

Phase 1 : Mon programme OLE ouvre 1 Modèle choisi par l'utilisateur, qui peut venir de n'importe ou (donc pas de possibilité d'y avoir mis 1 macro avant), et le lie avec ma base de donnée (si c'est pas déjà le cas) pour que l'utilisateur puisse y incorporer ses champs de fusion et mettre en forme. Mon 1er programme coupe alors la liaison avec Word.
Phase 2 : Quand je pense que la modification du modèle est finie (parce qu'il est libéré) je lance un autre programme OLE qui effectue le publipostage.
Comment programmer dans la phase 1 la gestion d'un evenement ?
La seule solution que je connaise serait de mettre 1 macro ds Normal.dot pour faire ça, mais si la macro n'est pas installée, ça devient trés compliqué, surtout en fonction des sécurités...
J'aurais donc aimé que le programme OLE puisse tout faire sans macro à installer.

Merci en tout cas pour ton aide : si tu arrives à comprendre ce que je veut faire, je suis sûr qu'on va trouver une solution simple...
bib34690 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 15h06   #10
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Je ne vois pas comment faire si l'application appelée ne peut pas utiliser de code.

J'ai essayé avec un doevent, mais c'est pas la solution
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2007, 19h05   #11
Membre du Club
 
Développeur informatique
Inscription : juin 2002
Messages : 171
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2002
Messages : 171
Points : 55
Points : 55
faudrait peut-être prendre le pb sous 1 autre angle :

1) Pourquoi Word2007 dereserve le documents avant de savoir la réponse (si on veut le sauver), alors que les versions antérieurs ne faisaient pas ça et que ç'est totalement incohérent ?
- Si c'est un bug, yaura peut-être un correctif (j'ai installé le SP1 et ça change rien).
- Si c'est volontaire, il doit y avoir 1 raison et un moyen de le désactiver.

2) comment detecter qu'une boite de dialogue monopolise Word et empeche toute action tant qu'on y a pas répondu.

3) Si on est capable de le detecter, est-il possible d'y répondre par programme.
bib34690 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2007, 19h39   #12
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Ça ne le faisait pas sur les version précédentes ?

As-tu un morceau de code ?
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2007, 09h47   #13
Membre du Club
 
Développeur informatique
Inscription : juin 2002
Messages : 171
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2002
Messages : 171
Points : 55
Points : 55
Le pb de la libération dès le clic sur la "X" n'existe que depuis Word2007.
Le code c'est tout simplement un Open du fichier.
La cde OPEN provoque 1 erreur tant que le document n'est pas libéré (fermé). Mais Word2007 libère la reservation sur le fichier dès le clic sur la croix pour fermer word, alors que le document est toujours visible et qu'on a la boite de dialogue "enregistrer les modifs ?".

Le problème de la boite de dialogue qui empêche toute autre commande Word existe dans toutes les versions.

2 conséquences graves :
- On peut ouvrir le DOC avec 1 autre logiciel (la version non modifiée), et avoir 2 cessions du meme document en "modification".
- Word est bloqué sur sa boite de dialogue et aucun programme OLE ne fonctionne tant qu'on a pas répondu.
bib34690 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2007, 16h16   #14
Membre du Club
 
Développeur informatique
Inscription : juin 2002
Messages : 171
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2002
Messages : 171
Points : 55
Points : 55
Lorsqu'une boite de dialogue monopolise Word, la commande "MonDoc = Documents.open(nom du modele)" ne provoque pas d'erreur mais le document n'est pas réouvert et n'importe quelle commande avec "Mondoc" plante (Ex.Mondoc.name).

Qulle que soit la version de Word, on ne peut pas lancer 1 nouvelle cession de word (en cliquant sur son icone) si on a cette boite de dialogue ouverte. Word est donc capable de la detecter.
Il doit y avoir 1 commande qui permet de savoir qu'une fenêtre modale est en cours...
si je pouvais tester genre "if MonWord.BoiteDeDialogueEnCours then... " ça me permettrait au moins d'éviter le plantage, en attendant la solution au 1er problème.

Pire :
Dans mon appli Word J'ai essayé de parcourrir la collection "Documents" pour detecter si le modèle que je veut ouvrir est déjà ouvert dans 1 autre instance : ca plante. N'importe quelle commande sur la collection "Documents" plante si la boite de dialogue est ouverte (Ex. : Documents.Item(x) provoque 1 erreur).

j'ai passé 3 jours sur ce pb...je n'en peut plus...AU SECOURS BILL !!!
Au secours ....aidez moi SVP
(PS j'ai modifié les précédants messages pour essayer d'être plus clair)
bib34690 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 11h08   #15
Membre du Club
 
Développeur informatique
Inscription : juin 2002
Messages : 171
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2002
Messages : 171
Points : 55
Points : 55
Bon, j'ai poursuivi mes recherches...voila ou j'en suis pour faire le point :

1) Il semble y avoir 1 Bug ds Word 2007 : dès le clic pour fermer Word le document est libéré, malgrés qu'il reste visible en attendant la réponse à la question "souhaitez-vous enregistrer les modifs ?".
Le document peut donc être ouvert par 1 autre application...sans les dernières modifs pas encore enreg.).
Une Solution pourrait être d'activer 1 option pour enregistrer les modifs ss poser de question lorsqu'on ferme Word (soit par les menus de Word, soit par macro à l'ouverture du document). Mais je ne connais pas cette option.
Si qqun a 1 solution pour éviter ou detecter ce pb, ou le N° perso.de BILL, je suis preneur.


2) Chaque fois qu'on ouvre 1 boite modale dans Word (comme ci-dessus), toutes les cessions de Word sont bloquées. Vous pouvez le vérifier en ouvrant 2 documents Word et en allant dans les options sur l'une d'elles...l'autre n'est plus activable. (toutes les fenêtres de Word activables depuis les menus semblent modales, enregistrer sous, boites de dialogues...).
Ce n'est pas un Bug, toutes les versions de Word font ça.
Mais le pb est avec l'Automation : comment savoir si Word est dispo qd on lance l'appli ?

Je continue à chercher mais j'aurais vraiment besoin d'aide car je patine...
bib34690 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 21h48   #16
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Citation:
Envoyé par Heureux-oli Voir le message
C'est ce que tu demandais non ?

Si tu veux une sauvegarde, tu fais un

Ou alors j'ai rien compris.
Citation:
Envoyé par Heureux-oli Voir le message
Alors, il faut vérifier que le propriété Saved est bien à True.

Si elle n'est pas à true, c'est que le document n'est pas libéré.

Tu peux aussi lancer une procédure sur fermeture du document.

Ici et c'est Autoclose qui devrait faire l'affaire.
J'ai déjà donné la réponse.
Si tu mets la propriété Saved à true, plus de question.
Pas de Boîte de message.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h08.


 
 
 
 
Partenaires

Hébergement Web