Screen Updating

S

Spencer.Sadkin

Is there a way to prevent screenupdating when calling a macro from
inside another macro? In this example
when running macro 1, macro 2 is called and one of the lines says
screenupdating=true and would then update the screen before macro 3
runs.

( I am actually running into this because im using ActiveX boxes
with cmb_change() ) the only thing i can think of is to set a bunch of
variables as boolean and use if then statements before the
application.screenupdating=true command. Unless there is a way to set
a variable for the original caller sub?

Thanks



sub macro1()
application.screenupdating=false
Call macro2
Call macro3 ' Not shown
application.screenupdating=true
end sub

sub macro2()
application.screenupdating=false
'do some code
application.screenupdating =true
End sub
 
P

Peter T

No not as written (if I follow). Indeed it's well worth ensuring that
ScreenUpdating is only reset once within a multiple series of routines, or
you'll get a flicker each time. Try and do something like this -

Sub main()
Application.screenupdating = false
call Macro1
Call Macro2
Application.screenupdating = True
end sub

and remove 'application.screenupdating=true' from both macro1 & 2

If for other reasons it's not viable to remove the reset in each macro, a
lazy alternative alternative (frowned on by some) might be something like
this

Public gbDontUpdate as Boolean ' top of a normal module

Sub main()
' best to ensure code returns even if errors elsewhere
on error goto errH '
Application.screenupdating = false
gbNoScrUpdating = True
call Macro1
Call Macro2
errExit:
Application.screenupdating = True
gbNoScrUpdating = True
end sub

In both Macro1 & macro2 -

If Not gbNoScrUpdating Then
Application.screenupdating = True
End if

Regards,
Peter T
 

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

Top