Stopping screens from flashing using Screenupdating

R

Raj

Hi,

In the Worksheet_deactivate event of Master worksheet, I activate the
Input worksheet. The Input worksheet_activate event then runs a macro
to form a pivot table in Table worksheet and use the values in the
Table worksheet to write a report in the Report worksheet.

When I deactivate Master worksheet all this happens, but there is
rapid flashing of various worksheets before the final output sheet
appears. I have tried using Screenupdating = false at various points.
How exactly do I use this Application property to avoid screens
flashing? Is there any other way to do this?

Thanks in advance for the help.

Regards,
Raj
 
N

NateBuckley

Public Sub main()

Application.ScreenUpdating = False

'Main Code goes between the two states.

Application.ScreenUpdating = True

End Sub

That's how I generally Use it and it works.
 
R

Raj

Hi,

I have used the false, code, true combination in all subs. The screens
still keep flashing. Any other ideas?

Thanks,
Raj
 
N

NateBuckley

Are you doing something like the following?

Sub Main
Application.ScreenUpdating = false
Call DoSomething
Application.ScreenUpdating = true
End Sub

Sub DoSomething
Application.ScreenUpdating = false

'Do something else

Application.ScreenUpdating = true
End Sub

You wouldn't need those extra Screenupdating calls in DoSomething, as
DoSomething sub is already being called while ScreenUpdating = false.

Unsure if this will fix your problem though, I'm sorry I can't help you any
futher. If I think of anything I'll make sure to jump back and let you know,
but apart from asking to see your code nothing much else I can do.
 
J

Jon Peltier

The way I handle this is with a flag:

Sub Main()
Application.ScreenUpdating = false
Call DoSomething
Application.ScreenUpdating = true
End Sub

Sub DoSomething()
' declare flag
Dim bScreenUpdating As Boolean

' set flag
bScreenUpdating = Application.ScreenUpdating

Application.ScreenUpdating = false

'Do something else

' use flag setting
Application.ScreenUpdating = bScreenUpdating
End Sub


- Jon
 

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