Microsoft Excel

Herbers Excel/VBA-Archiv

Keine Rückmeldung

Betrifft: Keine Rückmeldung von: Spenski
Geschrieben am: 06.08.2014 23:05:24

Eine Sache hab ich heute noch :)

Ich gab ein Makro (werd es morgen Abend ggf hochladen) das ca 20sec läuft.

In diesen Makro werden aus 10 kleinen Tabellen 80 Diagramme gebildet und als 80 .png Dateien abgespeichert.
In diesen 20sec wird ca 5sec lang "keine Rückmeldung" angezeigt und dann läufst normal weiter.

Gibts ne Möglichkeit excel zu sagen dass es bisschen langsamer machen soll damit das nicht passiert??

Das er viel rechnen muss ist mir schon klar und die PCs auf der Arbeit sind auch nicht die tollsten.

Vielleicht hat ja jmd ne Idee

Gruß
Christian

  

Betrifft: AW: Keine Rückmeldung von: Luschi
Geschrieben am: 07.08.2014 06:06:23

Hallo Christian,

80 Diagramme gebildet und als 80 .png Dateien abgespeichert
bedeutet, daß das Betriebssystem hier mit eingreift, um die 80 Dateien auf den Datenträger zu speichern. Während des Speichern-Befehls sollte Excel 'Arbeitspause' machen. Dazu gibt es den Befehl 'DoEvents'.
Außerdem überprüfe ich nach jedem Befehl 'Speichern' ob die Datei schon auf dem Datenträger _ angekommen ist:
    'dem Betriebssystem die Chance geben, die Speicherdatei auch anzulegen
    Do While Dir("c:\...\Diag_01.png", vbNormal) = ""
        'solange die Datei noch nicht existiert - warten, warten, warten
        DoEvents
    Loop
Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Keine Rückmeldung von: Spenski
Geschrieben am: 07.08.2014 07:08:45

Hi Luschi

Do Events ist meiner Meinung nach eingebaut. Ich nehm das Makro nachher mal mit nach Hause und poste es mal ...


Wie gesagt es hat sich bisher nie komplett aufgehangen , sieht in diesen 5 secunden halt nur Bissl doof aus :)


Gruß und einen schönen Tag
Christian


  

Betrifft: Nur doof aussehen? von: EtoPHG
Geschrieben am: 07.08.2014 08:48:57

Hallo Christian,

Du stellst Ansprüche!
Ich glaube nicht, dass du irgendeine programmatische Möglichkeit hast dieses Verhalten zu verhindern, da dies eine Meldung des Betriebssystems ist und nicht von der eigentlichen Applikation.
Was tu tun könntest, ist den Benutzer während des Abarbeitens des Makros in der StatusBar darüber zu informieren, an welchem Diagramm dein Makro gerade ackert.

Gruess Hansueli