• 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 script stopt met laden als het werkboek niet actief is.

Status
Niet open voor verdere reacties.

gridishere

Gebruiker
Lid geworden
5 nov 2009
Berichten
283
Hallo,

Allereerst gelukkig nieuw jaar. Ik werk met Excel met een VBA script. Het doel van mijn script is dat elke 5 seconden een script gaat worden uitgevoerd. Dit werkt dus ook. Maar op het moment dat ik mijn werkboek even niet voor me heb. Dus wanneer ik bijvoorbeeld in een ander werkboek werk. Dan stopt het script met het uitvoeren. Of te wel het gaat op pauze staan heb ik het idee. Ik heb al meerdere scripts geprobeerd die dezelfde werking hebben. Deze stoppen ook als ik Excel niet voor me heb.


Code:
Public RunWhen As Double
Public Const cRunIntervalSeconds = 5 ' 5 seconds
Public Const cRunWhat = "TheSub"  ' the name of the procedure to run

Sub StartTimer()
    RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
        Schedule:=True
End Sub

Sub TheSub()
    MsgBox "Voorbeeldje: Elke 5 seconden zie ik dit maar niet als het werkboek niet voor me is. Het doel van deze timer is om een 2e procedure te laden hier." 
    StartTimer  ' Reschedule the procedure
End Sub

Weet iemand een oplossing?


Bedankt alvast,

grid

:)
 

Bijlagen

Laatst bewerkt:
Hello,

Ik wil eigenlijk om de 5 seconden laten uitvoeren: ThisWorkbook.RefreshAll

Dus als iemand een idee heeft (waarschijnlijk met VBA). De vernieuwing zou elke 5 seconden door moeten gaan. Dus ook als ik met een ander werkboek werk en mijn werkboek open laat. Of als ik met een ander programma werk en Excel ergens in de achtergrond staat.


Met vriendelijke groet,

grid

:)
 
Laatst bewerkt:
Wat moet er ververst worden met ThisWorkbook.RefreshAll ?
 
Het is al opgelost!

Code:
Sub MySub()
ThisWorkbook.RefreshAll
Application.OnTime Now + TimeValue("00:00:05"), "MySub"
End Sub


Met vriendelijke groet,

grid

:)
 
Bij een query kun je een verversingsfrekwentie instellen. Daarvoor is geen macro nodig.
 
Ja dat kan. Maar dat kan vanaf 1 minuut. Seconden zijn niet mogelijk.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan