Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Zeitgesteuerte Abläufe mit VBA ausführen

8 views
Skip to first unread message

Marc Hennemann

unread,
Mar 1, 2007, 1:19:06 PM3/1/07
to
Hallo NG,
 
ich benötige eine Routine/Funktion, mit der ich über einen bestimmten Zeitraum
in definierten Abständen eine Messung durchführen kann.
 
Die Messung ist kein Problem, was ich aber nicht ganz hinbekomme ist z.B. so etwas:
 
Die Messung dauert ca. 2 sek.
Alle 10 sekunden soll eine Messung durchgeführt werden. Das
ganze soll über eine Stunde gemessen werden.
 
Jetzt die Frage: Wie kann ich die Messung im Hintergrund ablaufen lassen, so dass
der zeitliche Abstand wirklich nur 10 sek. zwischen jeder Messung ist und nicht 2 sek.
plus weitere 10 sekunden als wartezeit.
Die Zeit der Messung kann variieren, so dass es auf jeden fall die uhr im hintergrund weiterlaufen muss.
 
zur zeit mache ich das so:
 
Im Modul befindet sich:
==============================================
Public Function WAIT(MilliSekunden As Double)
Dim i As Double, Ende As Double
 
Ende = Timer + (MilliSekunden / 1000)
 
Do While i < Ende
  DoEvents
  i = Timer
Loop
 
End Function
================================================
 
Im Programmablauf sieht's wie folgt aus:
 
for i = 1 to 360
    MESSUNG durchführen
    WAIT (10000)
next i
 
 
Kann mir hier jemand helfen ?
 
Danke.
 
Marc
 
 

stefan onken

unread,
Mar 1, 2007, 3:06:50 PM3/1/07
to
hallo Marc,
schau dir dazu mal die OnTime-Methode an oder suche danach in dieser NG oder
 
Ein einfaches Bsp, in dem 60 sek alle 10 sek der Inhalt von A1 erhöht wird:
 
Dim startzeit As Date
Sub messungstarten()
startzeit = Now()
messung
End Sub
Sub messung()
Range("A1") = Range("A1") + 1
If Now() < startzeit + TimeSerial(0, 1, 0) Then _
Application.OnTime Now + TimeValue("00:00:10"), "messung"
End Sub
Evtl beeinflusst deine Messung aber die OnTime-Methode, in dem Fall musst du mal den Windows-Timer testen, der auf der verlinkten Seite beschrieben ist.
 
Gruß
stefan
 
 
 
 
"Marc Hennemann" <Marc.He...@gmx.de> schrieb im Newsbeitrag news:e201a4CX...@TK2MSFTNGP04.phx.gbl...

Helmut Weber

unread,
Mar 2, 2007, 7:37:50 AM3/2/07
to
Hallo,

>wirklich nur 10 sek. zwischen jeder Messung

hmm... kann mir nicht vorstellen,
dass dies mit Windows' Multitasking
ohne gewaltige Anstrengung und Eingriffe
überhaupt möglich ist.

So ungefähr alle 10 Sekunden?

Ja sicher. Siehe auch die Antwort von Stefan.
Genauer möglicherweise mit API-Gettickcount.

Ganz genau? Gibt's sowieso nicht.
Innerhalb vorgegebener Toleranz?
Ja, wenn nichts dazwischen kommt (Multitasking!)!

Und auch an Mitternacht denken, eventuell.


--
Gruß

Helmut Weber, MVP WordVBA

"red.sys" & chr$(64) & "t-online.de"
Win XP, Office 2003 (US-Versions)


0 new messages