Une macro Excel d'enregistrer un classeur avant la fermeture

La macro présenté ici est un excellent moyen de protéger les utilisateurs contre la fermeture par inadvertance leur dossier avant de l'enregistrer. Lorsque mis en œuvre, cette macro assure que Excel enregistre automatiquement le classeur avant de le fermer.

Sommaire

Excel sera normalement avertir les utilisateurs qui tentent de fermer un classeur non enregistré, en leur donnant une option pour enregistrer avant la fermeture. Cependant, de nombreux utilisateurs peuvent souffler passé l'avertissement et cliquez par inadvertance Non, disant Excel pour fermer sans enregistrer. Avec cette macro, vous protégez contre ce en enregistrant automatiquement avant la fermeture.

Comment les œuvres macro

Le code est déclenchée par l'événement BeforeClose du classeur. Lorsque vous essayez de fermer le classeur, cet événement se déclenche, l'exécution du code au sein. Le nœud du code est simple - il demande aux utilisateurs qu'ils veulent fermer le classeur. La macro évalue alors si l'utilisateur a cliqué sur OK ou sur Annuler.

Le message que vous voyez quand vous essayez de fermer le classeur.
Le message que vous voyez quand vous essayez de fermer le classeur.

L'évaluation se fait avec une instruction Select Case. La déclaration Select Case est une alternative à l'instruction If-Then-Else, vous permettant d'effectuer des contrôles d'état dans vos macros. La construction de base d'une instruction Select Case est simple:

Select Case Case Is = Case Is =Case Is =End Select



Avec une instruction Select Case, vous pouvez effectuer de nombreuses vérifications conditionnelles. Dans ce cas, vous êtes tout simplement la vérification de OK ou sur Annuler. Jetez un oeil sur le code:

Private Sub Workbook_BeforeClose (Cancel As Boolean) 'Étape 1: Activer la boîte de message et démarrer le checkSelect Case MsgBox ("Enregistrer et fermer?", VbOKCancel) «Etape 2: bouton enfoncé Annuler, donc annuler la closeCase Is = vbCancelCancel = True' Étape 3: bouton OK enfoncé, alors enregistrer le classeur et closeCase Is = vbOKActiveWorkbook.Save'Step 4: Fermez votre Select Case statementEnd Sous SelectEnd

Dans l'étape 1, vous activez la boîte de message que le chèque de condition pour l'instruction Select Case. Vous utilisez l'argument vbOKCancel pour assurer que le boutons OK et Annuler sont présentés comme choix.

Dans l'étape 2, si l'utilisateur a cliqué sur Annuler dans la boîte de message, la macro indique à Excel à annuler l'événement de Workbook_Close en passant Fidèle à la Annuler booléenne.

Si l'utilisateur a cliqué sur le bouton OK dans la boîte de message, l'étape 3 prend effet. Ici, vous dites Excel pour enregistrer le classeur. Et parce que vous ne définissez le Annuler booléenne True, Excel se poursuit avec la fermeture.

Dans l'étape 4, vous fermez simplement l'instruction Select Case. Chaque fois que vous instanciez un Select Case, vous devez le fermer avec un End Select correspondant.

Comment utiliser la macro

Pour mettre en œuvre cette macro, vous devez copier et le coller dans la fenêtre de code de l'événement Workbook_BeforeClose. Placer la macro il lui permet de fonctionner chaque fois que vous essayez de fermer le classeur:

  1. Activer Visual Basic Editor en appuyant sur Alt + F11.

  2. Dans la fenêtre de projet, trouver votre projet / nom du classeur et cliquez sur le signe plus à côté de lui pour voir toutes les feuilles.

  3. Cliquez ThisWorkbook.

  4. Dans la liste déroulante de l'événement, sélectionnez l'événement BeforeClose.

  5. Tapez ou collez le code dans le module nouvellement créé.

    Entrez votre code dans l'événement Workbook BeforeClose.
    Entrez votre code dans l'événement Workbook BeforeClose.

» » » » Une macro Excel d'enregistrer un classeur avant la fermeture