SolvedPrivate

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

Posted on 2015-02-10
9
20 Views
Last Modified: 2016-02-11
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
Comment
Question by:Berry Metzger
  • 4
  • 4
9 Comments
 
LVL 33

Expert Comment

by:Norie
ID: 40600492
Which sheet are the ranges you want to clear on?
0
 
LVL 48

Assisted Solution

by:Rgonzo1971
Rgonzo1971 earned 250 total points
ID: 40600495
Hi,

Are your plans  in different sheets?

Regards
0
 

Author Comment

by:Berry Metzger
ID: 40600539
all of the plans are on one sheet:  "Action Plans"
0
 
LVL 33

Accepted Solution

by:
Norie earned 250 total points
ID: 40600544
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
Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

 

Author Comment

by:Berry Metzger
ID: 40600549
yes they do when I invoke each one using 5 separate command buttons on the same sheet.
0
 
LVL 33

Expert Comment

by:Norie
ID: 40600575
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
 

Author Comment

by:Berry Metzger
ID: 40600587
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
 
LVL 33

Expert Comment

by:Norie
ID: 40600609
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
 

Author Comment

by:Berry Metzger
ID: 40600738
Thank you for again clearing up my error
Berry
0

Featured Post

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

Improved? Move/Copy Add-in Replacement - How to avoid the annoying, “A formula or sheet you want to move or copy contains the name XXX, which already exists on the destination worksheet.” David Miller (dlmille)  It was one of those days… I wa…
This article descibes how to create a connection between Excel and SAP and how to move data from Excel to SAP or the other way around.
The viewer will learn how to create a normally distributed random variable in Excel, use a normal distribution to simulate the return on an investment over a period of years, Create a Monte Carlo simulation using a normal random variable, and calcul…
The viewer will learn how to create two correlated normally distributed random variables in Excel, use a normal distribution to simulate the return on different levels of investment in each of the two funds over a period of ten years, and, create a …

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now