Hallo,
ich habe ein kleines Programm wo ich Daten von der RS232 Schnittstelle in Excel einlese.
Das einlesen geschieht per Do loop Schleife wo die Daten direkt in die Zellen von Excel geschrieben werden.
Was mir permanent negativ auffällt ist das egal welche Schleifenart man verwendet das immer mindestens 50% Cpu Last entstehen.
Ich habe mit Time + TimeSerial ein bisschen probiert das ganz zu optimieren:
Sub starten()
Application.ScreenUpdating = False
Static lngCalc As Long
t = True
zeit = Time + TimeSerial(0, 0, 0.6)
DoEvents
Application.OnTime zeit, "generate_meldung"
Application.ScreenUpdating = True
End Sub
Sub generate_meldung()
'call meinscript
If t = True Then starten
Application.ScreenUpdating = True
End Sub
Dabei konnte ich bei TimeSerial als mindeste Zahl nur 0,6 Sekunden einsetzen. Wenn das Script läuft verursacht es ein flackern aller Zellen und mancher Menüleisten. Das Flackern habe ich eigentlich bei fast jedem Scriptaufruf festgestellt, schein wohl ein Hausgemachtes MicroSoft Problem zu sein.
Mit Time + TimeSerial hat man zumindest den Vorteil das die CPU last bei nichteinmal 1% liegt aber den Nachteil das die Zellen bei jedem Aktualisierungsintervall flackern :-(
Das heißt ich suche eine Möglichkeit eine Schleife mit minimaler CPU Last ausführen zu können oder eine Methode die nicht die Zellen und das halbe Excel flackern läßt.
Ich bin gespannt und hoffe ihr habt da ein paar Tips parat.
Danke und Gruß
Steffen