Comment appeler un formulaire utilisateur dans VBA lorsque l'utilisateur clique sur le bouton Enregistrer dans MS Word?Appelez UserForm sur Enregistrer
0
A
Répondre
0
Voir Intercepting events like Save and Print pour un exemple qui devrait aider.
2
Vous avez deux options pour ce faire: Vous pouvez remplacer le haut-FileSave
et FileSaveAs
commandes, ou vous pouvez créer un gestionnaire d'événements pour l'événement DocumentBeforeSave
de l'application (qui est un peu plus de travail à faire).
Substitution les commandes intégrées peut être accomplie en ajoutant le code suivant à un module VBA (régler le type de formulaire utilisateur pour afficher en conséquence):
' override File -> Save
Public Sub FileSave()
CustomSave
' call ActiveDocument.Save to actually save the document
End Sub
' override File -> Save As...
Public Sub FileSaveAs()
CustomSave
' call ActiveDocument.SaveAs to actually save the document
End Sub
Sub CustomSave()
Dim frm As New frmCustomSave
frm.Show
End Sub
La deuxième option peut être mise en oeuvre par plaçant le code suivant sous Microsoft Word Objects ->ThisDocument dans l'éditeur VBA:
Option Explicit
Private WithEvents wdApp As Word.Application
Private Sub Document_New()
Set wdApp = Word.Application
End Sub
Private Sub Document_Open()
Set wdApp = Word.Application
End Sub
Private Sub wdApp_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
Dim frm As New frmCustomSave
frm.Show
End Sub