Exit 2 Sub

  • Thread starter Thread starter Doug
  • Start date Start date
D

Doug

I have a button that calls for a proceedure. There is a message box to exit
the proceedure if condition is not met. How do I exit the balance of the
first proceedure so it doesn't continue to the end?

The code I have is:

Private Sub cmdEnterPledge_Click()
Call FillPledgeInfo
' more code '( this is where I want to end this sub so it doesn't
continue & save)
ActiveWorkbook.Save
End Sub

Private Sub FillPledgeInfo()
If txtBox1.Value = "" Then
MsgBox ("Donor Number Must be Entered Before Entering Pledge")
Exit Sub
End If
' more code
End Sub

I hope this is enough info so you can figure out what I'm trying to do.
Thanks for your help.
Doug
 
Based on what you have posted, all you would have to do is remove the

ActiveWorkbook.Save

But I do not think that is what you want to do. I believe the message box
you referred to is missing. So, what I would normally do with the message
box is something like this:

choice = MsgBox("Do you want to continue?", vbYesNo, "CHOOSE")
If choice = vbYes Then
Else
Exit Sub
End If
 
Doug

The conditions must be checked within the main procedure itself like below..

Private Sub cmdEnterPledge_Click()
If txtBox1.Value = "" Then
MsgBox ("Donor Number Must be Entered Before Entering Pledge")
Exit Sub
Else
Call FillPledgeInfo
End If

' more code

ActiveWorkbook.Save
End Sub

Private Sub FillPledgeInfo()
' more code
End Sub
 
Since I am not sure whether the previous replies really addressed your
question I want to throw in my five cents as well. I would suggest you turn
the FillPledgeInfo() subroutine into a boolean-type function like so:

Private Function FillPledgeInfo() as Boolean
If txtBox1.Value = "" Then
MsgBox ("Donor Number Must be Entered Before Entering Pledge")
FillPledgeInfo = False
Exit Sub
End If
' more code
FillPledgeInfo = True
End Sub

I you do it this way you can include a line like this in your calling routine:

If FillPledgeInfo() = False Then Exit Sub

Hope this helped.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top