Hallo, ich habe eine Excelanwendung, in der ich zyklisch eine Messkarte auslesen und in ein Excelfeld schreiben möchte. Nun soll dies jede Sekunde passieren. Dazu habe ich mir unter Verwendung der user32.dll einen Timer programmiert, der auch schon prima läuft. Nun dachte ich, ich mache einfach wie beim uC: Timer an und dann While(Wartezeit < TimerZeit) 'warte einfach Dummerweise muss dazu der Timer in einem eigenen Thread laufen, weil, wie ich festgestellt habe, in der While-schleife auch der Timer stehenbleibt. Wie kann ich in Excel VBA für den Timer einen eigenen Tread anlegen? Gruß, Alex
Gast
#1529526
Schau Dir mal folgende Seite an: http://www.cpearson.com/Excel/OnTime.aspx
Gast
#1529529
Nachtrag: Damit habe ich auch schon gearbeitet: http://vb.mvps.org/samples/TimerObj/
Hallo Klaus, danke für die schnelle Antwort. Genau den Timer aus dem ersten Link verwende ich und er läuft auch. Allerdings muss ich ihn in einen eigenen Thread packen, damit er unabhängig ist vom Rest des Programms. Habe es jetzt aber anders gelöst, indem ich den relevanten Code in der Sub TimerProc ausführe und keine Warteschleife verwende. Aber prinzipiell würde ich gern wissen, ob das in VBA geht, einen Extrathread für den Timer zu starten. Gruß, Alex
Gast
#1529847
Hallo Alexander, kennst du irgendeine verlässliche Aussage über die Threadsicherheit von Excel-VBA? Vom Hörensagen würde ich tippen, es ist nicht Threadsicher. Lass mich gerne aufklären, wenn ich unrecht hab. Grüße
Hallo, dazu kann ich leider auch nichts sagen. Hab's, wie oben beschrieben, anders gelöst, aber wäre schön gewesen ;-) Gruß und frohes Neues, Alex
Gast
#1540753
Ok, danke für deine Antwort. (Ich selbst gehe auch anders vor) Wünsche ebenso ein frohes Neues!
Muss nochmal nachfragen, wie Du's genau gelöst hast. Hast Du auch den auszuführenden Code in die Timer-Sub gepackt oder hast Du die Wartezeit anders realisiert? Gruß, Alex
Gast
#1541747
Hallo Alexander, entschuldige bitte dass ich falsche Hoffnungen gemacht habe, aber meine Anwendung (für die ich über Threading nachgedacht habe) implementiert gar keinen Timer. Meine Gedanken gingen in eine ganz andere Richtung, ich habe hier nur meine Frage in den Raum geworfen - ich wollte nicht den Thread kapern, sorry nochmals. Grüße
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.