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
- alle Diagramme in den Hintergrund geschickt
- als oberste Ebene erscheint dann ein Word-Art mit „Daten aktualisieren“, bisher versteckt im Hintergrund
- die Aktualisierung der Datenbank und die Berechnung der neuen Werte findet statt
- 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