Réponse boite de dialogue prédéfinie "Enregistrer les modifications"
catherineFR27
Messages postés6Date d'inscriptionmardi 29 août 2006StatutMembreDernière intervention 5 septembre 2006
-
1 sept. 2006 à 15:33
catherineFR27
Messages postés6Date d'inscriptionmardi 29 août 2006StatutMembreDernière intervention 5 septembre 2006
-
5 sept. 2006 à 16:11
Bonjour,
J'ai créé un formulaire dans Word qui intègre du code dont une partie s'exécute à la fermeture du fichier (procédure sub document_close).
J'ai besoin de récupérer la réponse de l'utilisateur à la boite de dialogue prédéfinie "Voulez-vous enregistrer les modifications effectuées" dans mon code. Comment faire ?
J'ai tenté de biaiser en utilisant une Msgbox perso, mais la boite prédéfinie apparait quand même après la mienne, et c'est la 2nde qui est prise en compte pour l'enregistrement...
Les tentatives en ajoutant :
application.displayalerts = wdalertsnone / wdalertsmsgbox
ou
activedocument.saved = true
pour empêcher l'affichage de la boite prédéfinie n'ont pas marché.
catherineFR27
Messages postés6Date d'inscriptionmardi 29 août 2006StatutMembreDernière intervention 5 septembre 2006 1 sept. 2006 à 15:52
Précisément parce que je n'ai pas trouvé comment faire référence à cette boite de dialogue : pas dans la collection Dialogs de word, s'agit-il d'un API windows ? ça dépasse mes compétences...
Comment s'appelle-t-elle, comment récupérer le clic utilisateur ?
catherineFR27
Messages postés6Date d'inscriptionmardi 29 août 2006StatutMembreDernière intervention 5 septembre 2006 1 sept. 2006 à 16:12
Je te remercie, ce site est excellent.
Mais il ne résoud pas mon problème : il s'agit d'une boite de dialogue prédéfinie (office ?) et non d'une msgbox perso. Ce serait trop simple !
Catherine
Vous n’avez pas trouvé la réponse que vous recherchez ?
catherineFR27
Messages postés6Date d'inscriptionmardi 29 août 2006StatutMembreDernière intervention 5 septembre 2006 1 sept. 2006 à 16:26
J'ai essayé cette option, j'ai mis la msgbox perso dans un module de classe app_documentbeforeclose
Dans ce cas le problème qui se pose est que la boite de dialogue prédéfinie apparait quand même à la fermeture du fichier (après la msgbox perso donc) et si je clique OUI la 2e fois le fichier est quand même enregistré (même si j'ai cliqué NON la 1ere).
Voici ce que j'ai mis dans mon module de classe :
Public WithEvents App As Word.Application
Private Sub App_DocumentBeforeClose(ByVal Doc As Document, Cancel As Boolean)
Dim intResponse As Integer
NomFichier = ActiveDocument.Name
intResponse = MsgBox("Voulez-vous fermer et enregistrer les modifications apportées à " & NomFichier & " ?", _
vbYesNoCancel + vbExclamation + vbDefaultButton1, _
"Microsoft Office Word")
Select Case intResponse
Case vbYes
ActiveDocument.Save
Case vbNo
ActiveDocument.Saved = True 'Pour tenter d'empêcher l'affichage de la BD prédéfinie
Case vbCancel
Cancel = True
catherineFR27
Messages postés6Date d'inscriptionmardi 29 août 2006StatutMembreDernière intervention 5 septembre 2006 1 sept. 2006 à 16:54
C'est là que je l'avais mis au départ, j'ai tenté de passer par un événement beforeclose pour remédier à ce problème d'affichage de la boite prédéfinie en plus de ma msgbox.
Il faut dire que ça fait 3 jours que je cherche, alors je tente tout ce qui me vient à l'esprit !
Seulement le problème persiste et résiste...
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 1 sept. 2006 à 17:05
Perso j'ai fait le test dans Document_Close() et je n'ai plus la boite de word, je n'ai que celle que tu affiche par ton code, sauf si je choisis "Annuler".
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
catherineFR27
Messages postés6Date d'inscriptionmardi 29 août 2006StatutMembreDernière intervention 5 septembre 2006 5 sept. 2006 à 16:11
Merci à tous pour vos réponses et vos conseils.
Il s'avère que le code que j'ai écrit fonctionne très bien dans un autre document vierge, donc visiblement le problème est ailleurs... Il ne me reste plus qu'à trouver où !