Comment empêcher l’enregistrement d’un fichier Excel si une cellule spécifique est vide ?
Imaginez avoir créé un formulaire dans Excel et l’avoir partagé avec vos collègues. Vous souhaitez qu’ils indiquent leur nom dans une cellule spécifique pour identifier clairement la personne ayant saisi les informations. Si cette cellule reste vide, vous voulez empêcher l’enregistrement du formulaire. Dans ce tutoriel, je vais vous montrer comment utiliser une macro VBA pour bloquer l’enregistrement dès que la cellule désignée est vide dans Excel.
Empêcher l’enregistrement si une cellule spécifique est vide dans Excel
Pour empêcher l’enregistrement du classeur actuel lorsque la cellule spécifiée est vide dans Excel, appliquez simplement la macro VBA suivante.
Étape 1 : Ouvrez la fenêtre Microsoft Visual Basic pour Applications en appuyant simultanément sur les touches Alt + F11.
Étape 2 : Dans l’Explorateur de projets, développez VBAProject (Votre Nom du classeur.xlsm) et Microsoft Excel Objets, puis double-cliquez sur ThisWorkbook. Voir la capture d’écran :

Étape 3 : Dans la fenêtre ThisWorkbook qui s’ouvre, collez la macro VBA suivante :
Macro VBA : Empêcher l’enregistrement si une cellule spécifique est vide
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Update by ExtendOffice 20220907
Dim xFileName As String
Dim xStr As String
Dim xStrWSH As String
Dim xWSh As Worksheet
Dim xWShs As Sheets
Dim xWSh1 As Worksheet
Dim xWB As Workbook
xStrWSH = "xHidWSH_LJY"
On Error Resume Next
Set xWB = Application.ActiveWorkbook
Set xWShs = xWB.Worksheets
Set xWSh = xWShs.Item(xStrWSH)
If xWSh Is Nothing Then
Set xWSh1 = xWShs.Add
xWSh1.Name = xStrWSH
xWSh1.Visible = xlSheetVeryHidden
Cancel = False
Else
If Trim(Application.Sheets("Sheet1").Range("A1").Value) = "" Then
Cancel = True
MsgBox "Save cancelled"
End If
End If
End Sub Remarque :1. À la 26e ligne du code VBA ci-dessus, le "Sheet1"correspond à la Nom de la feuille de calcul spécifique, et «A1» correspond à la cellule spécifique ; vous pouvez les adapter selon vos besoins.
2. Après avoir saisi le code VBA dans ThisWorkbookVous devez d’abord enregistrer le classeur, puis vous pourrez envoyer le fichier activé pour les macros à d’autres personnes.
Désormais, si une cellule spécifique est vide dans le classeur actuel, une boîte de dialogue d’avertissement s’affiche au moment de l’enregistrement avec le message suivant : «Enregistrement annulé». Voir la capture d’écran ci-dessous :

Articles associés
Comment copier des lignes lorsqu’une colonne contient un texte ou une valeur spécifique dans Excel ?
Meilleurs outils de productivité Office
Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre productivité et Gagner du temps.Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et rend votre travail bien plus facile
- Activez l’édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50 % et vous fait économiser des centaines de clics de souris chaque jour !
Tous les compléments Kutools. Un seul installateur
Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.
- Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
- Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
- Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
- Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
- Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels