Enregistrement un classeur avant la fermeture avec vba Excel

La macro décrite ici constitue un excellent moyen de protéger les utilisateurs contre la fermeture accidentelle d’un fichier avant son enregistrement. Il oblige Excel à enregistrer automatiquement le fichier avant sa fermeture. Généralement, Excel alerte les utilisateurs qui le souhaitent. fermez le classeur non enregistré en vous suggérant d’effectuer cette opération. Cependant, de nombreux utilisateurs cliquent sur le bouton Non, ce qui entraîne la perte des modifications non enregistrées. L’utilisation de cette macro sera automatiquement protégée par les utilisateurs avant un tel cas.
Comment est marche?
Le code est déclenché par l’événement BeforeClose du classeur. Lorsque vous fermez le classeur, il déclenche l’événement et exécute le code approprié. La règle de la macro est simple: il est demandé à l’utilisateur s’il souhaite réellement fermer le classeur. La macro vérifie ensuite si l’utilisateur clique sur OK ou sur Annuler. Fenêtre de message affichée lorsque l’utilisateur souhaite fermer le classeur
L’analyse est effectuée par l’instruction Select Case. Ceci est une instruction alternative à If … Then … Else, vous permettant de vérifier la condition spécifique. La conception de base de l’instruction Select Case est simple:
Grâce aux instructions de Select Case, vous pouvez vérifier de nombreuses conditions. Dans ce cas, nous vérifions uniquement si le bouton OK ou Annuler a été cliqué. Jetons un coup d’oeil au code:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
‘Étape 1: Activer la boîte de message et commencer à vérifier

Select Case MsgBox("Enregistrer et fermer?", vbOKCancel)
'Étape 2: Appuyez sur le bouton Annuler - annule la fermeture
Case vbCancel
Cancel = True
'Étape 3: Appuyez sur le bouton OK - enregistre et ferme le classeur.
Case vbOK
ActiveWorkbook.Save
'Étape 4: Remplir l'instruction Select Case
End Select
End Sub

Commentaires:
1. Dans la première étape, une boîte de message est activée. Elle constitue la condition de l’instruction Select Case. Ensuite, nous utilisons l’argument vbOKCancel, afin que l’utilisateur puisse choisir entre les boutons OK et Annuler.
2. Si l’utilisateur clique sur le bouton Annuler, la macro commande alors à Excel d’annuler l’événement Workbook_Close. Ceci est fait en passant la valeur True à la variable logique Cancel.
3. Si l’utilisateur clique sur le bouton OK, l’étape 3 sera exécutée.
Excel recevra la commande pour enregistrer le classeur. Et puisque dans ce passage nous n’avons pas défini la valeur Fermer sur True, la fermeture se poursuivra.
4. Dans la quatrième étape, nous finissons l’instruction Select Case. Chaque fois que vous créez une instruction Select Case, vous devez la terminer avec End Select.

Comment utiliser la macro?
Pour implémenter cette macro, copiez et collez son code dans la fenêtre Code, en l’ajoutant à la méthode de gestion de l’événement Workbook_BeforeClose. Le placer ici vous permet d’exécuter la macro chaque fois qu’un utilisateur veut fermer le classeur.
1. Utilisez les touches Alt + F11 pour activer Visual Basic Editor.
2. Dans la fenêtre Projet, recherchez le bon projet ou classeur et cliquez sur le signe + en regard de celui-ci. Toutes les feuilles seront affichées.
3. Cliquez sur ThisWorkbook.
4. Sélectionnez l’événement BeforeClose dans la liste déroulante Event.
Fichier Édition de vue Insertion Format Débogage Exécuter Outils Aide de la fenêtre de compléments
Tapez ou collez le code dans la fenêtre Code et affectez-le à l’événement Workbook_BeforeClose.
5. Dans le module nouvellement créé, entrez ou collez le code.

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x