Protection contre la fermeture du classeur avant la reconstitution cellulaire avec Excel VBA

Parfois, nous ne souhaitons pas permettre aux utilisateurs de fermer un classeur avant d’y entrer des données spécifiques. Dans ce cas, Excel doit empêcher la fermeture du classeur tant que la cellule spécifiée n’est pas remplie avec les données.

Comment ca marche?
Le code est déclenché par l’événement BeforeClose du classeur. Lorsque vous fermez le classeur, cela déclenchera un événement qui déclenchera le code correspondant. La macro vérifiera si la cellule indiquée (dans ce cas C7) est vide. Si tel est le cas, le processus de fermeture sera annulé. Si la cellule C7 n’est pas vide, le classeur sera enregistré et fermé.

Private Sub BeforeClose (Fermer As Boolean)
'Étape 1: Vérifiez si la cellule C7 est vide
If Sheets("Feuil1").Range("C7").Value = "" Then
'Étape 2: Si vide, annule la fermeture et avertit l'utilisateur
Fermer = True
MsgBox "La cellule C7 ne peut pas être vide"
'Étape 3: S'il n'est pas vide, enregistrez et fermez
Else
ActiveWorkbook.Close SaveChanges:=True
End If
End Sub
Commentaires:
1. À la première étape, le contenu de la cellule C7 est vérifié.
2. S’il est vide, la deuxième étape est exécutée, c’est-à-dire l’annulation du processus de fermeture du classeur. Ceci est fait en passant la valeur True à la variable logique Fermer. Dans la deuxième étape, une boîte de message est également activée pour informer l’utilisateur de sa motivation (peut-être ne peut-il pas être aussi tranchant).
3. Si la cellule C7 n’est pas vide, le classeur est enregistré et fermé.


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. En la plaçant ici, vous pouvez exécuter la macro chaque fois qu’un utilisateur souhaite 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 d’évement.
Tapez ou collez le code dans la fenêtre Code et affectez-le à l’événement Workbook_BeforeClose.
5. Tapez ou collez le code dans le module nouvellement créé
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