• Status: Solved
  • Priority: Medium
  • Security: Private
  • Views: 39
  • Last Modified:

Called subroutine within macro does not function except in Debug / F8 Step Into mode

Hello Experts,
In the following macro the five "CallClearPlan 1 to 5 routines  when run do not clear the 5 plans and the macro ends properly.  When I Debug using F8 the macro steps through each of the 5 called Subs and does clear all fields in all 5 plans.  
How to correct this poor behavior is my question?


Sub ClearResponsesAndPlans()
'
'
'

    Response = MsgBox(prompt:="Select 'Yes' if you want to clear all 5 plans  'No' to quit.", Buttons:=vbYesNo + vbInformation)
    ' If statement to check if the yes button was selected.
  If Response = vbYes Then
        MsgBox "You selected 'Yes' to clear each of 5  Plans", vbExclamation, "Clear  Macro"
       
        Call ClearPlan1    
        Call ClearPlan2
        Call ClearPlan3
        Call ClearPlan4
        Call ClearPlan5
       
    Else
         ' The no button was selected.
         MsgBox "You selected 'No'. Press 'OK' to quit", vbCritical, "  Quit Macro "
       
  End If
 
        Sheets("Assessment").Select
        ActiveWindow.SmallScroll Down:=-87
        Range("Assess_Responses").Select
   
End Sub
~-~-~-~-~-~-~-~-~-
Below is a one of the five typical Called sub routines each of which function properly from individual commandbuttons...
~-~-~-~-~-~-~-~-~-
Sub ClearPlan1()
'
' ClearPlan1 Macro
'
'
    Range( _
        "B26:P30,B33:P37,D41:M43,D44:M46,D47:M49,D50:M52,N41:P43,N44:P46,N47:P49" _
        ).Select
   
    Selection.ClearContents
    Range("B8").Activate
End Sub


Thank you
0
Berry Metzger
Asked:
Berry Metzger
  • 4
  • 4
2 Solutions
 
NorieVBA ExpertCommented:
Which sheet are the ranges you want to clear on?
0
 
Rgonzo1971Commented:
Hi,

Are your plans  in different sheets?

Regards
0
 
Berry MetzgerLean process improvement consultantAuthor Commented:
all of the plans are on one sheet:  "Action Plans"
0
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

 
NorieVBA ExpertCommented:
Do the subs work if you specify that sheet?
Sub ClearPlan1()
'
' ClearPlan1 Macro
'
'
   Sheets( "Action Plans").Range("B26:P30,B33:P37,D41:M43,D44:M46,D47:M49,D50:M52,N41:P43,N44:P46,N47:P49" ).ClearContents
    
End Sub

Open in new window

0
 
Berry MetzgerLean process improvement consultantAuthor Commented:
yes they do when I invoke each one using 5 separate command buttons on the same sheet.
0
 
NorieVBA ExpertCommented:
Sorry I don't follow.

If you change the code for each sub to include the sheet reference, as in the example I posted, then the code should work wherever/however it's called.

In the original code there was no sheet reference so the code would be executed on whichever sheet was active at the tim.
0
 
Berry MetzgerLean process improvement consultantAuthor Commented:
I awarded both of you points because both of your questions arrived just two minutes apart led me to the answer that had escaped me.  By adding a Sheets"Select "Action Plans".select statement it now works fine when called from another sheet.
Thanks for your guidance.
Berry
0
 
NorieVBA ExpertCommented:
Berry

There's no need to Select/Activate and doing so can cause problems, eg subsequent code running on wrong sheet.

You can just add the sheet reference as I did in the code I posted.
0
 
Berry MetzgerLean process improvement consultantAuthor Commented:
Thank you for again clearing up my error
Berry
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 4
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now