Verifying Certain Cells have input

gheyman

Well-known Member
Joined
Nov 14, 2005
Messages
2,347
Office Version
  1. 365
Platform
  1. Windows
I have code that I want to run only if several cells have data in it.

E7
E9
E11
E13
E15
M7
M9
M11
M13
M15

I don't want it to do an If for each individual cell (If, then, If, Then....)
I want to run the code and check these. If any are blank, stop the code and open UserForm5

Code:
Private Sub CommandButton1_Click()
    
    Calculate

    Dim CurRow As Integer
    Dim NumMonths As Integer
    Dim Amount As Double
    Dim Dcurv As Integer
         
    'Changed
    Dcurv = Cells(71, 2).Value
    NumMonths = Cells(75, 2).Value
    Amount = Cells(72, 2).Value
    
    Range(Cells(77, 1), Cells(570, 2)).ClearContents
    
    CurRow = 76

    a = 1 / NumMonths
    W = Amount
    Min = 1
    'All other curves-------------
    BOG = 0.01 * Dcurv
    S = BOG
    For i = 1 To 40
       S = Sqr(BOG / (3 - (2 * S)))
    Next
    p = 0
    CL = 0
    For K = 1 To NumMonths
       Cells(K + CurRow, 1).Value = K
       p = p + a
       X = (1 - 2 * S) * p * (((-4 * p + 8) * p - 3) * p) + 2 * S * p
       C = X * X * (3 - 2 * X)
       XX = Min
       Cells(K + CurRow, 2).Value = ((C - CL) * XX * W)
       CL = C
       
       If K = 1 Then
        Cells(K + CurRow, 1).Formula = "=EOMONTH(B73,0)"
        Cells(K + CurRow, 1).NumberFormat = "mmm-yy"
       Else
        Cells(K + CurRow, 1).FormulaR1C1 = "=EOMONTH(R[-1]C,1)"
        Cells(K + CurRow, 11).NumberFormat = "mmm-yy"
       End If
     Next
     
     Range("S1").Activate
     Calculate
End Sub

Thanks
 

Excel Facts

How to create a cell-sized chart?
Tiny charts, called Sparklines, were added to Excel 2010. Look for Sparklines on the Insert tab.
I have code that I want to run only if several cells have data in it.

E7
E9
E11
E13
E15
M7
M9
M11
M13
M15

I don't want it to do an If for each individual cell (If, then, If, Then....)
I want to run the code and check these. If any are blank, stop the code and open UserForm5
Here is a short block of code to show you how to do that. I will leave it to you to incorporate it into your code:
Code:
    Dim r As Long
    
    For r = 7 To 15 Step 2
        If (Cells(r, "E") = "") Or (Cells(r, "M") = "") Then
            'code to open User Form here
            Exit For
        End If
    Next r
 
Upvote 0
Thanks, Joe. But once I exit out of the UserForm2 it continues/finishes through the code. I need it to exit the code.

Code:
Private Sub CommandButton1_Click()
    
    ActiveSheet.Unprotect "54TPL0102"
    Calculate
    
    Dim r As Long
    
    For r = 7 To 13 Step 2
        If (Cells(r, "E") = "") Or (Cells(r, "M") = "") Then
            UserForm2.Show
            Exit For
        End If
    Next r

    Dim CurRow As Integer
    Dim NumMonths As Integer
    Dim Amount As Double
    Dim Dcurv As Integer
         
    'Changed
    Dcurv = Cells(71, 2).Value
    NumMonths = Cells(75, 2).Value
    Amount = Cells(72, 2).Value
    
    Range(Cells(77, 1), Cells(570, 2)).ClearContents
    
    CurRow = 76

    a = 1 / NumMonths
    W = Amount
    Min = 1
    'All other curves-------------
    BOG = 0.01 * Dcurv
    S = BOG
    For i = 1 To 40
       S = Sqr(BOG / (3 - (2 * S)))
    Next
    p = 0
    CL = 0
    For K = 1 To NumMonths
       Cells(K + CurRow, 1).Value = K
       p = p + a
       X = (1 - 2 * S) * p * (((-4 * p + 8) * p - 3) * p) + 2 * S * p
       C = X * X * (3 - 2 * X)
       XX = Min
       Cells(K + CurRow, 2).Value = ((C - CL) * XX * W)
       CL = C
       
       If K = 1 Then
        Cells(K + CurRow, 1).Formula = "=EOMONTH(B73,0)"
        Cells(K + CurRow, 1).NumberFormat = "mmm-yy"
       Else
        Cells(K + CurRow, 1).FormulaR1C1 = "=EOMONTH(R[-1]C,1)"
        Cells(K + CurRow, 11).NumberFormat = "mmm-yy"
       End If
     Next
     
    'Get Monthly Values Paste them
    Range("S3:S62").FormulaR1C1 = "=IFERROR((INDEX(C[-17],MATCH(RC18,C[-18],0))),"""")"
    Range("S3:S62").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
     
     Range("M13").Activate
     Calculate
     ActiveSheet.Protect "54TPL0102"
     
End Sub
 
Upvote 0
Then change the:
Code:
Exit For
line to:
Code:
Exit Sub
 
Upvote 0
I have code that I want to run only if several cells have data in it.

E7
E9
E11
E13
E15
M7
M9
M11
M13
M15

I don't want it to do an If for each individual cell (If, then, If, Then....)
I want to run the code and check these. If any are blank, stop the code and open UserForm5
This (long) single line of code will exit the Sub if any one or more of the above identified cells is empty...
Code:
[table="width: 500"]
[tr]
	[td]If InStr("," & Join(Application.Transpose(Application.Index(Cells, [{7;9;11;13;15}], 5)), ",") & "," & Join(Application.Transpose(Application.Index(Cells, [{7;9;11;13;15}], 13)), ",") & ",", ",,") Then Exit Sub[/td]
[/tr]
[/table]
 
Upvote 0
Another possible approach to consider.
Code:
Dim rBlanks As Range

On Error Resume Next
Set rBlanks = Range("E7,E9,E11,E13,E15,M7,M9,M11,M13,M15").SpecialCells(xlBlanks)
On Error GoTo 0
If rBlanks Is Nothing Then
  'All complete so do your normal stuff here
Else
  'Do your stuff with UserForm5 here
End If
 
Upvote 0

Forum statistics

Threads
1,223,903
Messages
6,175,284
Members
452,630
Latest member
OdubiYouth

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