Application.ontime

Bonjour

j'ai une toute petite question concernant les macros a declenchement programmé , je connais l'insctruction application.ontime

qui permet de declencher une macro a une heure donnée sous la forme exemple :

Application.OnTime TimeValue("21:16:00"), "mamacro" 

Comment puis modifier cette instruction pour qu'elle s'execute entre 21h16 et 22h à chaque ouverture de mon classeur ? ( bien sur je place cette instruction dans Thisworbook.

En vous remerciant pour vos réponses

Bonjour,

expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule)

Application.OnTime TimeValue("21:16:00"),mamacro, TimeValue("22:00:00"),  Schedule:=False

Merci pour cette réponse sabV , mais en reprenant votre expression j'obtiens une erreur d'execution ... ne manque t il pas une syntaxe ou autre ?

oups, à tester,

Application.OnTime TimeValue("21:16:00"),mamacro, TimeValue("22:00:00"),  False

Merci ... mais meme avec votre nouvelle proposition cela donne une erreur

en relisant l'aide excel, je vois que l'exemple est écrit en 2 lignes,

c'est à tester,

Application.OnTime EarliestTime:=TimeValue("21:16:00"), Procedure:="mamacro", Schedule:=True
Application.OnTime LatestTime:=TimeValue("22:00:00"), Procedure:="mamacro", Schedule:=False

bon ... ayant tenté votre derniere solution ca ne marche toujours pas... merci quand meme d'avoir essayé de repondre


...le but a moins de passer par un autre moyen est que si on se trouve dans un intervalle de temps donnée , soit entre par exemple

10h00 et 11h00 dans cette tranche horaire et bien la macro sera appelée ... de mon coté je cherche aussi ..merci

Bonjour,

c'est un ensemble date-heure qu'il faut lui fournir, et le nom de macro doit être entre des " ".

Application.OnTime Date + TimeValue("21:16:00"), "mamacro", Date + TimeValue("22:00:00")

ici pour la date du jour, pour le lendemain : Date+1 etc

eric

Bonjour rocket4,

Je te propose ce code VBA :

Private Sub Workbook_Open()
  Application.OnTime TimeValue("10:00:00"), "macro1"
  Application.OnTime TimeValue("11:00:00"), "macro1", , 0
  Application.OnTime TimeValue("21:16:00"), "macro2"
  Application.OnTime TimeValue("22:00:00"), "macro2", , 0
End Sub

Si je ne me suis pas trompé :

a) macro1 sera lancée à partir de 10 h 00 ... puis arrêtée à 11 h 00

b) macro2 sera lancée à partir de 21 h 16 ... puis arrêtée à 22 h 00

Cordialement

une autre possibilité,

sur la page code ThisworkBook,

Private Sub Workbook_Open()
t = Time
If t >= "21:16:00" And t <= "22:00:00" Then Call mamacro
End Sub

Merci a tous pour vos réponses efficaces , je vais tester chacune de vos solutions ...encor merci

Bonjour,

pour la proposition sur laquelle tu as coché résolu, si tu ouvres ton fichier avant 21:16 ta macro ne sera jamais exécutée.

Ca ne semble pas être ta demande.

eric

Rechercher des sujets similaires à "application ontime"