none
Störende grafische Artefakte/Darstellungsfehler beim Ändern der Werte RRS feed

  • Frage

  • Hallo,

    derzeit arbeite ich an der Entwicklung einer auf MS Excel basierenden Anwendung. Diese besteht aus (aktuell) 15 Arbeitsblättern, die jeweils mehrere Zeitreihen haben, die miteinander durch Formeln verknüpft sind. An mehreren Stellen setze ich WorksheetChange - Eventmanagement. Selbstverständlich schalte ich dabei ScreenUpdate aus und sorge dafür, dass keine Prozedur diese unerwartet einschaltet.

    Seit einige Zeit werde ich immer öfter mit folgendem Problem konfrontiert:

    Nach dem ersten Ausführen der Excel-Datei läuft alles glatt. Sobald ich aber etwas ändere (betätige Dropdown, ändere einige Werte in den Zeilen) "flackert" die Darstellung - ich bekomme Fragmente anderer Datenblätter angezeigt und öfters verschwinden diese Fragmente nicht und verdecken die tatsächlichen Daten. Erst beim hin und her Schalten zwischen den Blättern verschwinden die. Für mich sieht es aus, als würde der Bildschirm vom Excel nicht "aufgeräumt", sondern nur nach dem Wegschalten "Refresht" .

    Das Debuggen hat komischerweise ergeben, dass dieses Phänomen VOR dem Ausführen der ersten Befehlszeile des WorksheetChange passiert. Ich bin durch diese Situation nun etwas überfordert. Zwar wird alles trotzdem richtig berechnet, einem Anwender solche graphische Fehler zumuten will ich nicht!

    Hätte jemand ähnliche Erfahrungen gemacht und wenn ja, wie seid ihr damit klar gekommen?

    Danke im Voraus!
    Donnerstag, 19. November 2009 14:46

Antworten

  • Guten Morgen...

    wenn Du Application.ScreenUpdating = False setzt, wird der Bildschirm
    nicht mehr aktualisiert. Die Eigenschaft muss später auch wieder explizit
    eingeschaltet werden. Insofern wäre das Verhalten, dass die Anzeige
    nicht aktualisiert wird normal.

    Falls Du das Event-Management temporär ausschalten möchtest, würde ich
    Application.EnableEvents = False verwenden, wobei auch dieses wieder
    explizit eingeschaltet werden muss.

    Gruß
    Sonntag, 21. Februar 2010 10:30

Alle Antworten

  • Hallo,

    Ich habe genau das gleiche Problem. Hast Du schon eine Lösung gefunden?
    Dienstag, 26. Januar 2010 16:24
  • Guten Morgen...

    wenn Du Application.ScreenUpdating = False setzt, wird der Bildschirm
    nicht mehr aktualisiert. Die Eigenschaft muss später auch wieder explizit
    eingeschaltet werden. Insofern wäre das Verhalten, dass die Anzeige
    nicht aktualisiert wird normal.

    Falls Du das Event-Management temporär ausschalten möchtest, würde ich
    Application.EnableEvents = False verwenden, wobei auch dieses wieder
    explizit eingeschaltet werden muss.

    Gruß
    Sonntag, 21. Februar 2010 10:30