Opgelost Waarom stagneert de timer

Dit topic is als opgelost gemarkeerd

Bram65

Gebruiker
Lid geworden
25 feb 2023
Berichten
232
beste

Ik heb een groot workbook waar een timer inzit.
Die timer is actief zolang het workbook is geopend.

Nu merk ik dat de timer na enkele seconden stagneert zoals in dit voorbeeld bestandje.
Mijn vraag is hoe dit kan.

In het originele workbook is de uit-te-voeren code iets groter dan in dit bestandje.
Dus wat doe ik niet goed?

Ik werk met W11 en Office 365

gr Bram
 

Bijlagen

In dat document zie ik geen probleem met de timer.
Deze blijft hier gewoon doorlopen tot ik de rode cel selecteer.
Wel je VoerCodeUit macro iets aangepast, maar dat staat los van het probleem dat je noemde.
 

Bijlagen

Laatst bewerkt:
Dank je Edmoor, ik heb ChatGPT er ook op los gelaten en die geeft aan dat het gebruik van 'ontime' de boosdoener is in deze. Het adviseerd een Windows-timer te gebruiken.
De code die ChatGPT hiervoor aangaf heb ik in mijn testcode ingevoerd en de stagnering is verdwenen.
Storingen zijn zelfs hiermee niet volledig uit te sluiten. Wanneer Windows andere, op de achtergrond lopende, apps voorrang geeft op Excel, zal de timer stagneren. Dat is waarschijnlijk ook de reden dat de eerste code bij jou wel werkt en hier stagneert. Deze nieuwe versie werkt hier wel goed dus is het zeker een verbetering. ChatGPT gaf ook nog een derde optie aan, weet niet meer hoe die dat werd genoemd maar is veel omslachtiger. Kan altijd nog.

Overigens heb jouw aangepaste code overgenomen, is ook nieuw voor mij.
 

Bijlagen

Laatst bewerkt:
Op zich niks mis met de SetTimer functie in deze context.
Deze functie is echter ook niet altijd even betrouwbaar.
 
Dat laatste schreef ik al maar wanneer ik in het originele workbook de timer heb vervangen door deze nieuwe, en het werkt, is het mij goed. Zo niet, kan ik altijd die derde optie bij ChatGPT nog opvragen.

Jouw code mbt kleuraanpassing werkt wel in de eerste verie maar niet in de tweede.
Snap daar niets van maar de If...Then werkt in de nieuwe versie goed.
Toch dank voor het meedenken.
 
Heb je in de vorige dit wel gedaan?
Code:
Option Explicit

Private VolgendeTijd As Date
Private wrd As Integer '<---
 
Werkt hier prima:
 

Bijlagen

De tijd loopt mooi door met onderstaande code.
Code:
Public tijd As Date
Sub StartKlok()
tijd = True
Do Until tijd = False
DoEvents
   Range("a2").Value = Format(Time, "h:m:ss")
Loop
End Sub


Sub StopKlok()
 tijd = False
End Sub
 
Volgens mij krijgen zo andere macro's en ook het werken op een werkblad geen tijd meer om iets te doen.
 
Zo, terug van de huisarts. De nieuwe timer heb ik in het originele workbook gezet en werkt prima.
 
tijd As Date maar later is tijd = True (het werkt maar klopt niet)

Een oneindige Do Until ... Loop zonder enige vertraging is zwaar voor Excel.
 
Code:
Public tijd as Boolean

De klok stopt als je in het werkblad werkt.
 
tijd As Date maar later is tijd = True (het werkt maar klopt niet)

Een oneindige Do Until ... Loop zonder enige vertraging is zwaar voor Excel.
Vandaar mijn opmerking in #10.
En Date moet dan inderdaad Boolean zijn.
 
Geen probleem om er een Worksheet_Change event ernaast te zetten, de tijd stopt en kan weer geactiveerd worden met "StartKlok" in de event.
 
Ik heb een groot workbook waar een timer inzit.
Het is geen timer volgens mij. Het is een klok die je bevriest terwijl de klok gewoon doorloopt.
 
Hoe je dat noemt is niet zo van belang.
Application.OnTime kan voor meerdere doeleinden worden gebruikt.
De interval tijd bepaald de frequentie.
De uit te voeren macro bepaalt wat er dan gebeurd.
Dat kan een klok zijn maar bijvoorbeeld ook het verversen van een database query.
 
Terug
Bovenaan Onderaan