Comment empêcher l'enregistrement si une cellule spécifique est vide dans Excel?
Par exemple, vous avez conçu un formulaire dans une feuille de calcul et le partagez avec vos collègues. Vous espérez que vos collègues remplissent leurs noms dans la cellule spécifique pour indiquer qui a saisi ce formulaire, sinon les empêcher de sauvegarder le formulaire, comment pourriez-vous faire? Ici, je vais présenter une macro VBA pour éviter d'enregistrer un classeur si la cellule spécifique est vide dans Excel.
Empêcher l'enregistrement si une cellule spécifique est vide dans Excel
Pour éviter d'enregistrer le classeur actuel si la cellule spécifique est vide dans Excel, vous pouvez appliquer facilement la macro VBA suivante.
Étape 1: Ouvrez la fenêtre Microsoft Visual Basic pour Applications en appuyant sur le bouton autre + F11 clés en attendant.
Étape 2: dans l'Explorateur de projets, développez le VBAProject (nom de votre classeur.xlsm) et Objets Microsoft Excel, puis double-cliquez sur le Ce classeur. Voir la capture d'écran à gauche:
Étape 3: Dans la fenêtre d'ouverture de ThisWorkbook, 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. Dans la 26e ligne du code VBA ci-dessus, le "Feuille1" est le nom spécifique de la feuille de calcul, et le "A1"est la cellule spécifique, et vous pouvez les modifier selon vos besoins.
2. Après avoir entré le VBA dans Ce classeur, vous devez d'abord enregistrer le classeur. Et ensuite, vous pouvez envoyer le fichier compatible avec les macros à d'autres.
Maintenant, si la cellule spécifique est vide dans le classeur actuel, lorsque vous l'enregistrez, une boîte de dialogue d'avertissement apparaît et vous indique "Enregistrer annulé". Voir la capture d'écran suivante:
Articles Relatifs
Comment vérifier ou trouver si la cellule contient une chaîne / texte / mot spécifique dans Excel?
Comment copier des lignes si la colonne contient du texte / une valeur spécifique dans Excel?
Comment copier des cellules si la colonne contient une valeur / un texte spécifique dans Excel?
Meilleurs outils de productivité bureautique
Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la 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 facilite grandement votre travail
- Activer 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 réduit des centaines de clics de souris chaque jour!