Macro uitvoeren op tijdsverschil

Status
Niet open voor verdere reacties.

joenex

Gebruiker
Lid geworden
24 mrt 2009
Berichten
5
Beste forumleden,

Ik heb een Excel sheet dat automatisch gegevens importeert via een DDE-interface. Aan deze gegevens wordt ook een tijdstip gekoppeld. Nu wil ik een macro laten uitvoeren als aan een bepaald tijdsverschil is voldaan. In cel H14 (zie bijlage) heb ik het tijdsverschil al berekend.

Sub ControleerTijd()
If Chart.Range("H14") = TimeValue("00:00:03") Then
Berekenen
End If
End Sub
Sub Berekenen()
Range("H9").Select
ActiveCell.FormulaR1C1 = "test"
End Sub

Tot zover ben ik gekomen, als cel H14 gelijk is aan 3 seconden dan wordt de macro Berekenen uitgevoerd. Helaas werkt dit nog niet, wat kan er fout gaan? Dit is de eerste keer dat ik in VBA werk dus alvast mijn excuses voor de domme fouten :confused:

Mvgr,

Jeroen
 

Bijlagen

Laatst bewerkt:
joenex,

Deze code is ook niet perfect, maar hij doet het bij mij op een leeg blad.
Ik heb niet naar het bestandje van je gekeken.
De code heb ik in een module gezet en aan een knop de macro gekoppeld.
Er zijn andere helpers die beter zijn dan ik met code, misschien het het je in de goede richting.
Code:
Sub ControleerTijd()
    Range("H14") = Now()
    Application.OnTime Now + TimeValue("00:00:03"), "Berekenen"
    Berekenen
End Sub
Sub Berekenen()
    Range("H9") = "test"
End Sub
 
Laatst bewerkt:
Bedankt voor je reactie Hoornvan! Dit ziet er inderdaad al beter uit, alleen de 'Application.OnTime Now' maakt gebruik van de huidige tijd. Als ik het macro uitvoer dan komt er wel test te staan maar dan veranderd cel H14 in de huidige datum en tijd. Het tijdsverschil wil ik eigenlijk ook dmv het macro bepalen, nu bepaal ik dit in de worksheet (cel H14) door de formule "=TEKST(A14-A3;"u:mm:ss")"

Ik ga er vanmiddag mee verder, in ieder geval bedankt!

joenex,

Deze code is ook niet perfect, maar hij doet het bij mij op een leeg blad.
Ik heb niet naar het bestandje van je gekeken.
De code heb ik in een module gezet en aan een knop de macro gekoppeld.
Er zijn andere helpers die beter zijn dan ik met code, misschien het het je in de goede richting.
Code:
Sub ControleerTijd()
    Range("H14") = Now()
    Application.OnTime Now + TimeValue("00:00:03"), "Berekenen"
    Berekenen
End Sub
Sub Berekenen()
    Range("H9") = "test"
End Sub
 
joenex,

Ik ben maar een amateur op dit gebied.

Je kunt ook met de zoek functie van helmij " Doorzoek dit forum " naar zoiets zoeken.
Volgens mij is dit al een behandeld en ik dacht aan de Excel zijde.
 
joenex,

Kijk op deze link bij #4.
Daar staan 2 linken en ik denk dat je daar wel vind wat je wil.
 
Dit is nog wat handige info inderdaad, bedankt voor het speurwerk!

Ik werk voorlopig door met het eerste script dus dit probleem kan als opgelost worden beschouwd..

joenex,

Kijk op deze link bij #4.
Daar staan 2 linken en ik denk dat je daar wel vind wat je wil.
 
joenex,

Ik heb op het Office Forum nog een code voor je gevonden.

Voorbeeld van de methode Wait

'In het volgende voorbeeld wordt de uitvoering van een macro opgeschort tot 18:23 (vandaag).

Code:
Application.Wait "18:23:00" 
'In het volgende voorbeeld wordt de uitvoering van de macro gedurende ongeveer 10 seconden opgeschort. 

newHour = Hour(Now()) 
newMinute = Minute(Now()) 
newSecond = Second(Now()) + 10 
waitTime = TimeSerial(newHour, newMinute, newSecond) 
Application.Wait waitTime 
'In dit voorbeeld wordt een bericht weergegeven dat aangeeft of er tien seconden voorbij zijn. 

If Application.Wait(Now + TimeValue("0:00:10")) Then 
    MsgBox "Time expired" 
End If
 
Laatst bewerkt:
De koninklijke weg om na een verversing van een databasequery een macro uit te voeren staat hier
 
snb,

Ik maak geen gebruik van een databasequery, mijn data wordt d.m.v. Active X geimporteerd uit een datalogger.

Wel een handig stukje wat nog eens van pas gaat komen, bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan