View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
Michael May Michael May is offline
external usenet poster
 
Posts: 3
Default Excel 2003 (8316.8221) screen corruption

On Dec 9, 5:11*pm, "Peter T" <peter_t@discussions wrote:
"Michael May" wrote in message

...
On 8 Dec, 17:17, "Peter T" <peter_t@discussions wrote:





"Michael May" wrote in message


...
On Dec 8, 2:54 pm, "Peter T" <peter_t@discussions wrote:


Sounds like you have been impacted by the recent KB973475 patch for
Excel
2003 of 09-Nov-2009.


Try disabling ScreenUpdating at the start of your code and reset when
done
Application.ScreenUpdating = False ' True


Could you report back if this has helped or not.


MS are aware problems with this patch and also KB973593 for Excel 2007.
Hopefully it won't be too long before the update is updated.


Regards,
Peter T


"CSSLevel2" wrote in message


...


Hi


Excel 2003 (11.8316.8221) SP3 on Windows XP


When the Excel starts it activates the first sheet in the workbook but
shows
portions of the second and third sheet "bleeding" into the first
sheet.
This
is easily worked around by say minimising and maximising the workbook
or
causing it to repaint in some other way. After the repaint the first
sheet
shows correctly in full.


a) Has an update to Excel been issued which fixes this problem?
b) Can you think of a good workaround (given the details below)?


The workbook is a VBA application which has worked well for a number
of
years. It has broken as described above since an update to Excel in
mid-October. The broken build is 11.8316.8221 SP3.


In the workbook open event a number of sheets are unprotected and then
protected (for drawing objects and scenarios). If this functionality
is
commented out then the problem goes away. This behaviour looks shoddy
and
is
difficult to explain to the application's customers.


Thanks for your help.- Hide quoted text -


- Show quoted text -


Thanks Peter. I did try suppressing the screen update but it did not
help. I was thinking of covering the workbook with a transparent
window or maybe minimising and maximising the workbook programatically
but I may wait to see if there is a fix on its way.


Is there any way to report the bug to Microsoft in the hope that it
gets fixed?


I'll post if I find a solution.


Mike
================================


As I mentioned before MS are aware of the issues, but if you have a
support
contract with MS do get in contact as it's helpful in making them aware of
the impact.


Strange that workaround didn't work, particularly after doing
Application.ScreenUpdating = True


Another thing to try, when done
Dim wn As Window
' code
' all done
Set wn = ActiveWindow
Application.ScreenUpdating = False
wn.WindowState = xlMinimized
wn.WindowState = xlMaximized
Application.ScreenUpdating = True


If that doesn't work, enable screenupdating just before toggling the
window.
Again please advise - looking for temporary workarounds!


And if that doesn't work could you give more details of what you are
doing.


Regards,
Peter T- Hide quoted text -


- Show quoted text -


Thanks Peter. *If I run that code (minimise-maximise) in the
Workbook_Open procedure, the corrupted screen problem still occurs.
However if I kick off a timer event in the Workbook_Open procedure and
then execute the the code in the event handler then the screen is
drawn properly. *I am using a timeout of 2000 milliseconds but I don't
suppose the timeout period matters.

Thanks for your help.

==============================================

Interesting, thanks for the feedback.

Could you briefly describe what the code does, and if it includes either
re-enabling screenupdating or redrawing Excel with min/restore when done to
fix.

Regards,
Peter T


I used exactly the code that you proposed, reproduced below. My only
contribution was to execute in a Timer event handler (where the timer
is started at the end of the Workbook_Open procedure.

Dim wn As Window
Set wn = ActiveWindow
Application.ScreenUpdating = False
wn.WindowState = xlMinimized
wn.WindowState = xlMaximized
Application.ScreenUpdating = True

Mike