Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 69
Default screenupdating = true

As i know, DoEvents simply adds WM_PAINT message to windows queue.
So you are rights. Windows decides when to pass this message to application.


XP wrote:
Eugene,

Yes, all you would need to do is add: DoEvents
wherever desired. This causes regular macro execution to take second
priority while anything in the buffer - for example, repainting the screen,
once that is done, the macro continues as normal.

However, and correct me if I'm wrong Tom, but I know at least in past
versions of XL I have noted that DoEvents does not always fire in code order,
i.e. even though it may appear as the fourth or fifth instruction, it may
fire first. At least I've had that issue before. To get around that, I put
"DoEvents" in a second function by itself and call it when needed and this
seems to ensure that it runs when ordered. For example:

Sub Test_Program()

<your code
Call ExecuteDoEvents
Application.ScreenUpdating
<your other code
End Sub

Private Function ExecuteDoEvents()
DoEvents
End Function

HTH


"eugene" wrote:


Hi Tom,

Thanks loads.

I am not sure what you mean by "a doevents." Sounds like it is more
complicated than simply adding the line "DoEvents." I tried the latter but it
doesn't seem to help. The help info in MS help is unclear to me. So I would
appreciate a bit more help.

---
eugene


"Tom Ogilvy" wrote:


Try adding a

doevents

before setting screenupdating to True.

--
Regards,
Tom Ogilvy


"eugene" wrote:


Hi,

is anyone aware of whether Application.ScreenUpdating = True also updates
settings on objects created using the control toolbox)? I am running into a
problem where not everything on the screen updates all the time and from the
pattern I am noticing, it seems that it always shows changes in the worksheet
itself, but sometimes does not show changes to objects on the worksheet.

Details:
My program runs in two modes - "one screen at a time" or "loop through many
screens." I set screenupdating to false no matter what.

In "one screen at a time" mode, everything displays as it should at the end
of each run. In this mode I don't explicitly update the screen but rely
instead on the fact that the screen updates when the sub ends.

In "loop through many screens" mode, I have the "do work" sub called from a
looping macro. Now I explicitly state screenupdating = true at the end of
each loop and I have a "wait" function that halts the running of the macro
allows one to see the display for a short while. All the changes occur (I
stepped through the code), but the display is not right. The worksheet
changes are there, but changes made to something like the caption of a
toggle button do not display.

My code is extremely long and and won't run without the data residing in the
worksheet. So I can't post it all. I am quite certain, however, that the
problem has nothing to do with the code since everything works right when I
step through the code. (In step into mode, the screen of course updates
properly as it always does.)

Is anyone out there aware of what the issue might be and how I might be able
to fix it?

--
eugene

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Search for 2 true arguments and return true or false David Excel Discussion (Misc queries) 3 July 15th 06 10:18 AM
Function to return True/False if all are validated as True by ISNU Tetsuya Oguma Excel Worksheet Functions 2 March 15th 06 10:28 AM
ScreenUpdating stays TRUE no matter what? [email protected] Excel Programming 9 November 18th 05 06:33 PM
Screenupdating is always true Petro[_2_] Excel Programming 1 July 23rd 04 04:19 AM
ScreenUpdating automatically resets to True Bob Phillips[_5_] Excel Programming 3 August 29th 03 10:58 AM


All times are GMT +1. The time now is 04:47 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"