Excel 2007 Diagramme in Ebenen 'verschwinden' kurz

Hallo Forum,

ich habe heute mal ein eher formalistisches Problem mit Excel-Diagrammen:

Aus mehreren Datenbanken werden Inhalte geholt (Durchsatz/Stunde, erfolgte Prüfungen/Stunde) und diese in vier Diagrammen dargestellt. Diese Diagramme sind in Ebenen übereinander gelegt, da Punktverteilung, gepackte Balken und Einzelbalken gewünscht waren. Soweit, sogut.

Wird die Ansicht per Schaltfläche mit kleinem VB oder alle 5 Minuten per ODBC aktualisiert, werden

  1. alle Diagramme in den Hintergrund geschickt
  2. als oberste Ebene erscheint dann ein Word-Art mit „Daten aktualisieren“, bisher versteckt im Hintergrund
  3. die Aktualisierung der Datenbank und die Berechnung der neuen Werte findet statt
  4. die Diagramme werden ebenendefiniert wieder in den Vordergrund geholt.

Das zugegeben kleine aber unschöne Problem: Alle Zellen sind berechnet (Statusleiste ist leer, keine Weltkugel), die Diagramme sind aktuell und im Vordergrund. Trotzdem „blinkt“ jetzt jedes Diagramm einmal durch. I.S.v. die Dinger verschwinden für den Bruchteil einer Sekunde ein zweites Mal und tauchen aber sofort wieder auf, als ob noch eine andere Aktualisierung stattfindet.
Eine eingebaute 1-Sekunden-Wartezeit vor dem Zurückholen der Ebenen hat nichts gebracht, die Idee war, dem System mehr Rechenzeit zu geben.
Weitere Makros gibt es nicht.

Das (der?) Makro sieht so aus:

Sub Ansicht_AFRA()

’ Ansicht_AFRA Makro

Sheets(„Diagramm AFR3&AFR4“).Select
ActiveSheet.ChartObjects(„Diagramm 4“).SendToBack
ActiveSheet.ChartObjects(„Diagramm 3“).SendToBack
ActiveSheet.ChartObjects(„Diagramm 2“).SendToBack
ActiveSheet.ChartObjects(„Diagramm 1“).SendToBack
ActiveWorkbook.RefreshAll
ActiveSheet.ChartObjects(„Diagramm 1“).BringToFront
ActiveSheet.ChartObjects(„Diagramm 2“).BringToFront
ActiveSheet.ChartObjects(„Diagramm 3“).BringToFront
ActiveSheet.ChartObjects(„Diagramm 4“).BringToFront
End Sub

Ich weiß, das ist jetzt wie munteres Rätselraten… Aber zugunsten einer schicken Anzeige ohne nerviges Rumschalten bin ich für jeden Tipp dankbar.

Gruß
Michael

Hallo Michael,

warum das passiert kann ich auch nicht sagen. Was ich gerne mache ist:

Application.ScreenUpdating = False

Dann wird nicht zur Ansicht aktualisiert, bis dieser Wert wieder auf True gesetzt wird. Bei langen Berechnung, die viele Felder ändern, ist das auch wesentlich schneller, da der Screenupdate nicht nach jeder Änderung gemacht wird. Mir scheint es, dass bei dir noch „Ansichten“ aufbereitet werden, die dann zu diesem zappeln führen.

Wie gesagt, das Problem verstehe ich nicht, aber vielleicht hilft die Idee.

Dirk.Pegasus