Une macro Excel pour empêcher la fermeture de classeurs

Il ya des moments où vous ne voulez pas un utilisateur fermeture sur un classeur Excel sans entrer un morceau spécifique de données. Dans ces situations, il serait utile de nier l'utilisateur la possibilité de fermer le classeur jusqu'à ce que la cellule cible est rempli (comme montré ici). Ceci est où cette macro astucieux entre en jeu.

Sommaire

Empêcher la fermeture jusqu'à une cellule spécifique est remplie.
Empêcher la fermeture jusqu'à une cellule spécifique est remplie.

Comment les œuvres macro

Ce 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. Cette macro vérifie si la cellule cible (cellule C7, dans ce cas) est vide. Si elle est vide, le processus de fermeture est annulée. Si C7 est pas vide, le classeur est enregistré et fermé:

Private Sub Workbook_BeforeClose (Cancel As Boolean) 'Étape 1:.. Vérifiez si la cellule C7 est Fiches blankIf ("Sheet1") Range ("C7") Valeur = "" Then'Step 2: Si la cellule est vide, annuler la étroite et dire userCancel = TrueMsgBox "Cellule C7 ne peut pas être vide" 'Etape 3: Si la cellule est pas vierge, enregistrer et closeElseActiveWorkbook.Close SaveChanges: = TrueEnd Sous IfEnd



Étape 1 vérifie si C7 est vide.

Si C7 est vide, étape 2 prend effet, l'annulation du processus de clôture en passant Fidèle à la Annuler booléenne. Étape 2 active également une boîte de message notifiant à l'utilisateur de sa bêtise (bien, il est pas tout à fait dur, vraiment).

Dans l'étape 3, si la cellule C7 est pas vide, le classeur est enregistré et fermé.

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 ici 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 pour empêcher la fermeture de classeurs