to check if any cell is empty

cshetty

Board Regular
Joined
Apr 15, 2017
Messages
87
Office Version
  1. 2016
Platform
  1. Windows
Dear All

My present code calls a Macro even if one cell is non empty.


Code:
Sub EmptyCell()
    If Range("D9") = Empty And Range("D11") = Empty And Range("D15") = Empty And Range("D22") = Empty Then
    MsgBox "Empty Cells"
    Else
Call PrintMatters
    End If
 
End Sub
I want to call the macro Printmatters only if all the ranges mentioned in the code is filled. If any one cell is empty it should not call the macro.


Thank you
 

Excel Facts

Who is Mr Spreadsheet?
Author John Walkenbach was Mr Spreadsheet until his retirement in June 2019.
Dear mole999

Thanks for your reply.

May be i have not explained my problem properly.

The macro should be called if D9, D11, D15, D22 are all filledwith data.

I tried replacing Empty with "" , in this case if any two cells are filled with data and other two are blank, the code still calls the macro PrintMatters

Please assist

Thanks
 
Upvote 0
in that case if ALL cells must have data then change = to <> . That should ensure that No blanks can be left
 
Upvote 0
Code:
Sub EmptyCell()
If WorksheetFunction.CountA([D9,D11,D15,D22]) = 4 Then Call PrintMatters
End Sub
 
Upvote 0
Way too slow... should have refreshed.... see post #5 :oops:
 
Last edited:
Upvote 0
you could create a function to test the range has been completed

Code:
Sub EmptyCell()
    
 If IsComplete(Target:=Range("D9,D11,D22")) Then Call PrintMatters
 
End Sub




Function IsComplete(ByVal Target As Range) As Boolean
    Dim Cell As Range
    For Each Cell In Target.Cells
    IsComplete = CBool(Len(Cell.Value) > 0)
    If Not IsComplete Then
        MsgBox "Entry Required.", 48, "Entry Required"
        Cell.Select: Exit Function
    End If
    Next Cell
End Function

Function can be used for other ranges as required.

Dave
 
Upvote 0
Code:
Sub EmptyCell()
If WorksheetFunction.CountA([D9,D11,D15,D22]) = 4 Then Call PrintMatters
End Sub
If you are going to call out to the Evaluate function (its square bracket form) to get the cell values, why not let it do all of the work...

If [COUNTA(D9,D11,D15,D22)=4] Then Call PrintMatters
 
Upvote 0
dmt32
Why create a UDF that does the same thing as COUNTA ?
 
Upvote 0

Forum statistics

Threads
1,224,827
Messages
6,181,195
Members
453,021
Latest member
pingpong7117

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top