Réponse boite de dialogue prédéfinie "Enregistrer les modifications"

Signaler
Messages postés
6
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
5 septembre 2006
-
Messages postés
6
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
5 septembre 2006
-
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é.

Merci d'avance de votre aide !

Catherine

11 réponses

Messages postés
182
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
14 mars 2011

je ne comprend pas ton pb pourquoi n'utilise tu pas le msgbox de win avec lui tu peux recupere la resultat en fonction des options choisi
Messages postés
6
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
5 septembre 2006

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 ?

Merci,

Catherine
Messages postés
182
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
14 mars 2011

voila un lien qui poura peutetre t'aider
http://www.pise.info/vb/partie3.htm
Messages postés
6
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
5 septembre 2006

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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Peu etre que ceci peut t'aider.


Il suffit de savoir que Msgbox te renvoie le bouton appuye par l'utilisateur.








Private Sub Document_Close() 
If MsgBox("Voulez Vous sauveagarder?", vbQuestion Or vbYesNo) = vbYes Then ThisDocument.Save 
End Sub 

 







<small> Coloration syntaxique automatique [AFCK]</small>

       









 






@+,   Ju£i?n
Messages postés
6
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
5 septembre 2006

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
   
    End Select
               
End Sub
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Et pourquoi ne mets-tu pas ce code dans Document_Close() ?

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
6
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
5 septembre 2006

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...

Catherine
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
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 #
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Peu etre que tu peux essayer ceci dans le code

Application.DisplayAlerts=wdAlertsNone

Je ne l'ai pas testé mais je pense que cela devrait virer les msgbox de Word
Messages postés
6
Date d'inscription
mardi 29 août 2006
Statut
Membre
Dernière intervention
5 septembre 2006

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ù !

Encore merci de vos réponses.

Catherine