VBA - Application.ScreenUpdating verursacht "Schlieren" beim Verschieben von Fenstern

7shots

Cadet 3rd Year
Registriert
Nov. 2010
Beiträge
40
Hallo zusammen,

für eine Excel-Vorlage habe ich ein Makro, welches mit der Anweisung Application.ScreenUpdating = False beginnt und mit Application.ScreenUpdating = True endet. Im Laufe des Makros poppen diverse Fenster auf (z.B.: Dateibrowser mittels Application.GetOpenFilename, Inputbox, MsgBox). Verschiebe ich diese Fenster über den Bildschirm, so entstehen Schlieren die nicht wieder verschwinden. Das heisst, ich bin in der Lage den kompletten Bildschirm zu "bemalen".
Entferne ich die ScreenUpdating Anweisung zu Beginn des Makros, besteht dieses Problem nicht. Jedoch entspricht diese Lösung nicht meinen Vorstellungen.

System: Office 2010 (auf neustem Stand), Windows XP x64 mit aktueller Hardware.

Selbst bei diesem simplen Beispiel besteht diese Problematik:

Sub test()
Application.ScreenUpdating = False
MsgBox "hallo ich bin ein makro"
End Sub

Siehe:
http://i48.tinypic.com/2v2vb7q.jpg

Seltsam ist, dass ich unabhängig von der Office Version (2007/2010) dieses Problem auf Windows 7 Rechnern zu Hause nicht habe. Könnte das Problem Windows XP spezifisch sein?
 
Ich denk fast es hängt mit Windows XP (vielleicht auch mit der 64-Bit spezifisch) & Office 2010 zusammen. Versuch ein älteres Office-Paket, z.B. 2003.
 
Das ist auf der Arbeit leider nicht so einfach :)

Habe das Makro auch auf XP 32bit getestet. Selbe Problematik. Vermutlich werde ich des Rätsels Lösung erst kennen, sobald wir auf Win7 umgestiegen sind. Schade.
 
Also von einem Problem würde ich nicht sprechen. Offenbar wurde Windows 7 da optimiert.

Daß das Excelblatt nicht aktualisiert wird, wolltest Du ja explizit. In Windows Vista/7 hat sich ja von der Grafikschnittstelle einiges getan. Offenbar ist das Neuzeichnen des Fensters möglich.

Der Inhalt der Zellen bleibt aber unverändert.
 
Da könntest du natürlich Recht haben miac. Findet sich hier evtl. jmd der die Kombination winXP und Office2010 hat und das mal testen könnte?
 
Ich habe in einer virtuellen Maschine getestet. Windows XP Office 2003 -> Schlieren
Windows 7 / 64 Office 2010 -> keine Schlieren

In beiden Systemen wurden die Zellinhalte während Application.ScreenUpdating = False nicht aktualisiert.

Im Windows XP System wurde das Fenster komplett nicht aktualisiert, d.h. wenn ich das Popup außerhalb des Excel Fensters gezogen habe, waren da keine Schlieren zu sehen.

Da bleibt also nur in XP, vor dem Anzeigen des Popups das ScreenUpdating wieder auf true zu setzen.

Die Kombination XP / Office 2010 habe ich jetzt nicht verfügbar. Wenn es nötig ist, könnte ich aber eine solche Kombination aufsetzen.
 
Zuletzt bearbeitet:
Danke für deine Mühen. Diese Information ist denk ich ausreichend für mich. Es bleibt mir also nichts andres übrig als auf Win7 zu warten bzw. die ScreenUpdating Anweisungen vor den Popups in den Code einzufügen.
 
Zurück
Oben