Log in  \/ 
x
or
x
x
Register  \/ 
x

or

How to make a particular cell mandatory enter before closing workbook?

When you share a workbook to other users for doing a survey which needs the real name registration, for instance, every user under investigation needs to enter their name in B1. But in some times, some users may close the workbook after investigation without entering their names. In this article, I introduce a VBA to make a particular cell mandatory before closing the workbook.

Make a cell mandatory enter with VBA


arrow blue right bubble Make a cell mandatory enter with VBA

1. Enable the workbook that contains the mandatory cell, and press Alt + F11 keys to open Microsoft Visual Basic for Applications window.

2. In the Project pane, double click ThisWorkbook, and go to select Workbook and BeforeClose from right section list, then paste below code to the script. See screenshot:

VBA: Make a cell mandatory

    If Cells(1, 2).Value = "" Then
        MsgBox "Cell B1 requires user input", vbInformation, "Kutools for Excel"
        Cancel = True
    End If

doc mandantory enter 1

3. Then save this code and close this popping window. Now, if the cell B1 is blank when you close the workbook, below dialog will pop out to remind you to enter something in B1. See screenshot:
doc mandantory enter 2

Tip: You can change cell B1 to other cells you want.


The Best Office Productivity Tools

Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails...
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range...
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns... Prevent Duplicate Cells; Compare Ranges...
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
  • More than 300 powerful features. Supports Office/Excel 2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
kte tab 201905

Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
officetab bottom
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Akshay Patil · 1 years ago
    I want to make rows C2 to C7 mandatory and C13 to C19 mandatory?

    Any help?

    2 sets of ranges are here but under the same column.
  • To post as a guest, your comment is unpublished.
    Shea · 2 years ago
    Is there any way that I can Required cell f4 and F5 have data before closing or saving?
    • To post as a guest, your comment is unpublished.
      Sunny · 2 years ago
      Just change B1 to F4 and F5 in the textbox to remind users.
  • To post as a guest, your comment is unpublished.
    zwaeneb · 2 years ago
    Hello, thank you for this formula, it works!

    However, now I have created a template in which several cells are mandatory to fill out. But after creating the template and entering the macro, I cannot close it, because I have to fill out the cells :) So, I cannot send out a template...(where the mandatory cells must still be empty)


    Can you help me?

    Thanks!
    • To post as a guest, your comment is unpublished.
      Ricky I · 4 months ago
      Hi everybody, I found the solution was to pause the macro in the alt+f11 screen. It can then be saved and will restart when next opened. To do this press alt + f11 then in the row of icons above the window (same one as where the little blue file disk icon is) you will see Play, Pause, Stop icons in green and blue (should be under the Debug and Run options). Click the middle pause button then you can save.
    • To post as a guest, your comment is unpublished.
      Rick · 4 months ago
      Hi everybody, I found the solution was to pause the macro in the alt+f11 screen. It can then be saved and will restart when next opened. To do this press alt + f11 then in the row of icons above the window (same one as where the little blue file disk icon is) you will see Play, Pause, Stop icons in green and blue (should be under the Debug and Run options). Click the middle pause button then you can save.
    • To post as a guest, your comment is unpublished.
      Sally · 10 months ago
      I have this same issue. Is there a way to make a cell mandatory but blank for a template?
    • To post as a guest, your comment is unpublished.
      M · 1 years ago
      I'm interested in this also, thanks!
    • To post as a guest, your comment is unpublished.
      zagreb · 2 years ago
      Any update on this?
  • To post as a guest, your comment is unpublished.
    Shabaaz · 2 years ago
    Did you ever fined an answer to this?
    • To post as a guest, your comment is unpublished.
      Sunny · 2 years ago
      Sorry, which question do you mean?
  • To post as a guest, your comment is unpublished.
    ashley · 3 years ago
    how do i make column D16-D300 mandatory if column B16-300 has values? I used the code below for row 16 and tried variations but it is not working. any help is greatly appreciated!


    'us business as a mandatory field- need to fix if none are there and window pops up

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    'Step 1: Check to see if Cell A1 is blank
    If Sheets("Sensitive Leave Tracker").Range("B16").Value "" And Sheets("Sensitive Leave Tracker").Range("D16").Value = "" Then

    'Step 2: Blank: cancel the Close and tell the user
    Cancel = True
    MsgBox "Cant close field required"
    'Step 3: Not Blank; Save and Close
    Else
    ActiveWorkbook.Close SaveChanges:=True

    End If
    End Sub
    • To post as a guest, your comment is unpublished.
      Sunny · 2 years ago
      Hello, sorry to reply so late. Here is the macro code you may be need. If it works, please let me know. Thanks!

      If Application.WorksheetFunction.CountA(Range("B16:B300")) > 0 Then

      If Application.WorksheetFunction.CountA(Range("D16:D300")) <> Range("D16:D300").Count Then

      MsgBox "Cell D16:D300 requires user input", vbInformation, "Kutools for Excel"

      Cancel = True

      End If

      End If