Kaalbartje
Gebruiker
- Lid geworden
- 3 jan 2020
- Berichten
- 91
Beste allen,
Ik ben een countdown aan het maken. Nu heb ik de countdown prima werkend. Hij telt af per seconde. Hierdoor wordt er door een macro elke seconde een update gedaan. Dit werkt prima.
Echter ben ik bezig om het grafisch ook mooier te maken. Hiervoor maak ik gebruik van de index formule. Doordat er plaatjes gevonden moet worden per cijfer (2 per jaar, maand, dagen, uren, minuiten en secondes) ben ik genoodzaakt geweest om een macro toe te voegen die de uitkomst copiert naar waarden. Want de index met plaatjes werkt alleen met waarden en niet met de uitkomst van een formule.
Met als gevolg dat de excel/macro te traag is geworden om mooi per seconde af te tellen. Je merkt dat er een hickup inzit.
Grafisch ben ik nog niet helemaal klaar dus de cijfers zijn nog niet mooi uitgelijnd maar ik hoop dat er iemand kan helpen om hem weer soepel te laten lopen. Ik ben absoluut geen expert met VBA.
Ook het bestand erbij:
Ik ben een countdown aan het maken. Nu heb ik de countdown prima werkend. Hij telt af per seconde. Hierdoor wordt er door een macro elke seconde een update gedaan. Dit werkt prima.
Echter ben ik bezig om het grafisch ook mooier te maken. Hiervoor maak ik gebruik van de index formule. Doordat er plaatjes gevonden moet worden per cijfer (2 per jaar, maand, dagen, uren, minuiten en secondes) ben ik genoodzaakt geweest om een macro toe te voegen die de uitkomst copiert naar waarden. Want de index met plaatjes werkt alleen met waarden en niet met de uitkomst van een formule.
Met als gevolg dat de excel/macro te traag is geworden om mooi per seconde af te tellen. Je merkt dat er een hickup inzit.
Grafisch ben ik nog niet helemaal klaar dus de cijfers zijn nog niet mooi uitgelijnd maar ik hoop dat er iemand kan helpen om hem weer soepel te laten lopen. Ik ben absoluut geen expert met VBA.
Code:
Option Explicit
Public bTimerOn As Boolean
Sub ToggleTimer() ' This Sub will switch the automatic timer on if it was off before, and vice-versa
bTimerOn = Not bTimerOn
Refresh ' It calls the Refresh Sub
End Sub
Sub Refresh() ' This Sub calculates the sheet and tells Excel to call it again after 1 second
Application.ScreenUpdating = False
Application.Calculate
If bTimerOn Then ' If bTimerOn is True, start refreshing automatically
Application.OnTime Now + TimeValue("00:00:01"), "Refresh" ' The intervall is set to 1 second but can be changed variably
End If
Range("K11:L16") = Range("H11:I16").Value
Application.ScreenUpdating = True
End Sub
Ook het bestand erbij: