Forum: PC-Programmierung Excel VBA, Timer in eigenen Thread


von Alexander H. (ill_son)


Lesenswert?

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

von Klaus (Gast)


Lesenswert?

Schau Dir mal folgende Seite an:

http://www.cpearson.com/Excel/OnTime.aspx

von Klaus (Gast)


Lesenswert?

Nachtrag: Damit habe ich auch schon gearbeitet:

http://vb.mvps.org/samples/TimerObj/

von Alexander H. (ill_son)


Lesenswert?

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

von Exce(l)ntriker (Gast)


Lesenswert?

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

von Alexander H. (ill_son)


Lesenswert?

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

von Exce(l)ntriker (Gast)


Lesenswert?

Ok, danke für deine Antwort. (Ich selbst gehe auch anders vor)

Wünsche ebenso ein frohes Neues!

von Alexander H. (ill_son)


Lesenswert?

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

von Exce(l)ntriker (Gast)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.