Hallo iedereen,
Ik heb een lastig probleem met vba in Excel 2007. Ik heb een stuk code wat precies om de 10 seconden moet worden uitgevoerd. Deze code loopt een aantal miliseconden en is niet constant (er worden sensoren uitgelezen en dit kan 'even' duren). Eerder had ik in de code de opdracht application.wait(10) staan, waardoor de loggings om de 10 seconden + uitleestijd werden geplaatst. Dit is niet de bedoeling, want de loggings moeten om de 10 seconden worden uitgevoerd. In een test van 30 minuten moeten er dus 180 loggings worden uitgevoerd, elke precies om de 10 seconden.
Ik had bedacht om via onderstaand stukje code bovenstaande problematiek op te lossen.
Op de een of andere manier werkt dit echter ook niet. Als ik de code zoals hierboven getoond laat lopen (ook zonder de overige code), dan is de output van het messagebox vaak (niet altijd..) de eindtijd + 1 seconde. De variabelen begintijd en einddtijd kloppen echter wel. Conclusie is dus dat ook met deze methode de loggings niet precies 1x per 10 seconden lopen.
Weten jullie wel een methodiek waarmee ik hier wel voor kan zorgen?
Ik heb een lastig probleem met vba in Excel 2007. Ik heb een stuk code wat precies om de 10 seconden moet worden uitgevoerd. Deze code loopt een aantal miliseconden en is niet constant (er worden sensoren uitgelezen en dit kan 'even' duren). Eerder had ik in de code de opdracht application.wait(10) staan, waardoor de loggings om de 10 seconden + uitleestijd werden geplaatst. Dit is niet de bedoeling, want de loggings moeten om de 10 seconden worden uitgevoerd. In een test van 30 minuten moeten er dus 180 loggings worden uitgevoerd, elke precies om de 10 seconden.
Ik had bedacht om via onderstaand stukje code bovenstaande problematiek op te lossen.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
| Function test() begintijd = Now() eindtijd = Now() + TimeSerial(0, 0, 10) 'Hier loopt de overige code, uitlezen van de sensoren Do Until eindtijd < Now() 'wachten Loop MsgBox begintijd & " " & eindtijd & " " & Now() End Function |
Op de een of andere manier werkt dit echter ook niet. Als ik de code zoals hierboven getoond laat lopen (ook zonder de overige code), dan is de output van het messagebox vaak (niet altijd..) de eindtijd + 1 seconde. De variabelen begintijd en einddtijd kloppen echter wel. Conclusie is dus dat ook met deze methode de loggings niet precies 1x per 10 seconden lopen.
Weten jullie wel een methodiek waarmee ik hier wel voor kan zorgen?
(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!