Table des matières:
Vidéo: Comment Fermer un classeur après un délai d'inactivité Excel vba 2025
Il y a des moments où vous ne voulez pas qu'un utilisateur ferme un classeur Excel sans entrer une donnée spécifique. Dans ces situations, il serait utile de refuser à l'utilisateur la possibilité de fermer le classeur jusqu'à ce que la cellule cible soit remplie (comme illustré ici). C'est là que cette macro astucieuse entre en jeu.
Comment fonctionne la macro
Ce code est déclenché par l'événement BeforeClose du classeur. Lorsque vous essayez de fermer le classeur, cet événement se déclenche en exécutant le code à l'intérieur. Cette macro vérifie si la cellule cible (cellule C7, dans ce cas) est vide. S'il est vide, le processus de fermeture est annulé. Si C7 n'est pas vide, le classeur est sauvegardé et fermé:
Private Sub Workbook_BeforeClose (Cancel As Boolean) 'Étape 1: Vérifiez si la cellule C7 est vide Si Sheets ("Sheet1"). Plage ("C7"). Value = "Then" Etape 2: Si la cellule est vide, annulez la fermeture et dites à l'utilisateur Cancel = True MsgBox "La cellule C7 ne peut pas être vide" 'Etape 3: Si la cellule n'est pas vide, sauvegardez et fermez Else ActiveWorkbook. True End Si End Sub
L'étape 1 vérifie si C7 est vide
Si C7 est vide, l'étape 2 entre en vigueur, annulant le processus de fermeture en transmettant True à L'étape 2 active également une boîte de message notifiant l'utilisateur de sa stupidité (bien, ce n'est pas si dur, vraiment).
À l'étape 3, si la cellule C7 n'est pas vide, le classeur est sauvegardé et closed.
Comment utiliser la macro
Pour implémenter cette macro, vous devez la copier et la coller dans la fenêtre du code d'événement Workbook_BeforeClose, en la plaçant à chaque fois que vous essayez de fermer le classeur: <
-
Dans la fenêtre du projet, trouvez le nom de votre projet / classeur et cliquez sur le signe plus à côté pour voir toutes les feuilles > Cliquez sur ThisWorkbook.
-
Dans la liste déroulante Événement, sélectionnez l'événement BeforeClose.
-
Tapez ou collez le code dans le nouveau module.
-
Entrez votre code dans l'événement Workbook BeforeClose.
