Archief - VBA code om de seconde laten uitvoeren

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

shadowstep0705

Legacy Member
Hallo 9Lives,

Voor een excel macro zou ik een stukje code nodig hebben dat om de seconde een stuk code uitvoert, en dit voor 5 seconden.

Ik ben tamelijk nieuw met VBA en Visual Basic, dus leg ook de code wat uit aub.
Anders heb ik er niets aan.

Alvast bedankt! ;)

Parnakra

Legacy Member
Code:
Dim counter as Integer
Dim aTimer as Timer

Public Sub Foo()
   aTimer = New System.Timers.Timer(1000)

   AddHandler aTimer.Elapsed, AddressOf OnTimedEvent

   counter = 0
   aTimer.Start()

End Sub

Private Shared Sub OnTimedEvent(source As Object, e As ElapsedEventArgs)
   counter += 1
   If counter >= 5 Then
      aTimer.Stop()
   End If
End Sub
Code is self-explanatory. Er kunnen eventueel syntaxfouten in zitten, mijn brein sterft een beetje telkens ik VB code schrijf.

shadowstep0705

Legacy Member
Zo self explainatory vind ik dat ook weer niet. Waar moet ik mijn code plaatsen die om de seconde wordt uitgevoerd?

pieta

Legacy Member
Parnakra zei:
Code:
Dim counter as Integer
Dim aTimer as Timer

Public Sub Foo()
   aTimer = New System.Timers.Timer(1000)

   AddHandler aTimer.Elapsed, AddressOf OnTimedEvent

   counter = 0
   aTimer.Start()

End Sub

Private Shared Sub OnTimedEvent(source As Object, e As ElapsedEventArgs)
   counter += 1
   If counter >= 5 Then
      aTimer.Stop()
   End If
End Sub
Code is self-explanatory. Er kunnen eventueel syntaxfouten in zitten, mijn brein sterft een beetje telkens ik VB code schrijf.

kunt ge uwe timer nie op 5000 zetten ipv in uw timer te controleren?

@ hierboven

ge maakt ergens in uw code de timer en start die.

die 1000 is het interval waarmee uw code wordt uitgevoerd, 1000 = 1 sec
Om de seconde wordt dan uw timermethod uitegvoerd.

in de timermethod steekt ge uw code wat ge wilt uitvoeren. in dit geval is dat de OnTimedEvent mehthod.

btw: ken zelf niks van vba ma timers werken ongeveer overal wel hetzelfde..

Parnakra

Legacy Member
pieta zei:
kunt ge uwe timer nie op 5000 zetten ipv in uw timer te controleren?
Dan zou de timer om de 5 seconden ticken, maar zoals ik de opgave interpreteer moet hij 5 keer tikken in 5 seconden.

En tijdens mijn (kort) gegoogle heb ik niet meteen een manier gevonden om een timer te doen stoppen na x ticks.

pieta

Legacy Member
Parnakra zei:
Dan zou de timer om de 5 seconden ticken, maar zoals ik de opgave interpreteer moet hij 5 keer tikken in 5 seconden.

En tijdens mijn (kort) gegoogle heb ik niet meteen een manier gevonden om een timer te doen stoppen na x ticks.

excuseer ik had te snel gelezen :)

@ TS, als em gewoon 5 keer moet tikken en nie bepaald om de seconde ma gewoon 5 keer in de 5 sec kunt ge ook for loopke maken...

shadowstep0705

Legacy Member
pieta zei:
excuseer ik had te snel gelezen :)

@ TS, als em gewoon 5 keer moet tikken en nie bepaald om de seconde ma gewoon 5 keer in de 5 sec kunt ge ook for loopke maken...

Hij moet wel degelijk 5 seconden tikken, en elke seconde een actie uitvoeren ;)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan