View Single Post
  #10   Report Post  
Posted to microsoft.public.excel.programming
eugene eugene is offline
external usenet poster
 
Posts: 61
Default screenupdating = true

Hi again,

After a considerable amount of tinkering, everything so far seems to work
right. The result is so surprising, however, that I feel duty bound to share
it with those who responded (and with members of the group who are generally
so helpful).

It is possible that there were, and still are, some quirks in my program. I
have no way of knowing whether the tinkering I did with it had any effect on
the final outcome. But after some restructuring of my program (reordering and
streamlining), I decided to try DoEvents again. I tried all three suggestions
mentioned in previous posts. Each helped something (that was true before
restructuring as well). But none alone worked perfectly. There was always
something wrong. A toggle button or a combo box or a text box did not update
as it was supposed to. But since each suggested form of DoEvents seemed to
help at least one problem, I decided it might be worth to try combinations.
When two commands were used, things generally got better - but still not
perfect.

What did work, however, is a COMBINATION OF THREE COMMANDS - as such:

Call ExecuteDoEvents
DoEvents
Application.ScreenUpdating = True
DoEvents
Application.ScreenUpdating = False

The call is to the function suggested in XP's response:

Private Function ExecuteDoEvents()
DoEvents
End Function

The first two lines
Call ExecuteDoEvents
DoEvents
seem to be entirely redundant. But I only get perfect display if both are
there.

I have no idea what is happening and my results may be unique to my program.
But it does indicate that it is worth trying various things. One never knows
what will please the computer monster.

---
eugene


"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