• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA update werkblad

Status
Niet open voor verdere reacties.

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.

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:
 

Bijlagen

Leuk ideetje!
Hij zal allicht al een stuk soepeler gaan lopen als je Screenupdating gewoon AAN laat staan. Ook Calculate staat daar weinig te doen. Dat zijn meteen 3 regels code minder.
Je moet wel nog eens naar je formules in kolom D kijken!
 
Ik had juist begrepen dat het zou versnellen om het beeld niet te updaten.
Ik zal calculate eens weg halen.

Ik zag dat in kolom D de maanden idd niet goed berekend werd. Door wat te proberen was de formule weg gevallen maar die is zo te herstellen. Was je verder nog wat anders opgevallen in kolom D?

edit:
hij lijkt nu wel soepeler te lopen. Maar misschien nog iemand andere tips voor de code, kan vast beter dan wat ik gebakken heb ;)?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan