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

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

Merci d'avance de votre aide !

Catherine

11 réponses

cs_kazer04 Messages postés 182 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 14 mars 2011
1 sept. 2006 à 15:47
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
0
catherineFR27 Messages postés 6 Date d'inscription mardi 29 août 2006 Statut Membre Derniè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 ?

Merci,

Catherine
0
cs_kazer04 Messages postés 182 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 14 mars 2011
1 sept. 2006 à 15:52
voila un lien qui poura peutetre t'aider
http://www.pise.info/vb/partie3.htm
0
catherineFR27 Messages postés 6 Date d'inscription mardi 29 août 2006 Statut Membre Derniè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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
1 sept. 2006 à 16:14
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
0
catherineFR27 Messages postés 6 Date d'inscription mardi 29 août 2006 Statut Membre Derniè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
   
    End Select
               
End Sub
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
1 sept. 2006 à 16:43
Et pourquoi ne mets-tu pas ce code dans Document_Close() ?

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
catherineFR27 Messages postés 6 Date d'inscription mardi 29 août 2006 Statut Membre Derniè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...

Catherine
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
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 #
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
2 sept. 2006 à 10:45
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
0
catherineFR27 Messages postés 6 Date d'inscription mardi 29 août 2006 Statut Membre Derniè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ù !

Encore merci de vos réponses.

Catherine
0
Rejoignez-nous