Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Procédure OnTime récalcitrante

10 réponses
Avatar
Jean-Paul GIORGETTI
Salut à tous,

Je désire faire une procédure qui s'exécuterait toutes les heures (à l'heure
pile) à partir de l'heure suivant l'ouverture du fichier.

J'ai donc créé un petit bout de code pour tester mais voilà que ma procèdure
s'exécute plusieurs fois de suite (2, 3, 4 fois), je ne comprends pas
pourquoi, j'ai essayé d'y coller une instruction "Wait", mais cela n'a rien
changé.
Je vous transmet ce que j'ai écrit, je suis preneur de toutes propositions
et explications.

Merci d'avance,

Jean-Paul


Sub AtHour()
Heure = Hour(Now) + 1
Heure = TimeValue(Str(Heure Mod 24) & ":00:00")
Application.OnTime Heure, "message"
End Sub



Sub message()
MsgBox "test"
'Application.Wait (Now + TimeValue("0:00:10"))
AtHour
End Sub

10 réponses

Avatar
Corto
Bonjour Jean-Paul GIORGETTI,
La fonction OnTime demande un timestamp complet (Date + heure)
Sub AtHour()
Application.OnTime Now + TimeValue("00:10:00"), "message"
End Sub

Sub message()
ActiveCell = Now
ActiveCell.Offset(1, 0).Activate
AtHour
End Sub

Corto

Salut à tous,

Je désire faire une procédure qui s'exécuterait toutes les heures (à l'heure
pile) à partir de l'heure suivant l'ouverture du fichier.

J'ai donc créé un petit bout de code pour tester mais voilà que m a procèdure
s'exécute plusieurs fois de suite (2, 3, 4 fois), je ne comprends pas
pourquoi, j'ai essayé d'y coller une instruction "Wait", mais cela n' a rien
changé.
Je vous transmet ce que j'ai écrit, je suis preneur de toutes proposi tions
et explications.

Merci d'avance,

Jean-Paul


Sub AtHour()
Heure = Hour(Now) + 1
Heure = TimeValue(Str(Heure Mod 24) & ":00:00")
Application.OnTime Heure, "message"
End Sub



Sub message()
MsgBox "test"
'Application.Wait (Now + TimeValue("0:00:10"))
AtHour
End Sub






Avatar
ponsinet.frederic363
Il faudrait tout à fait en premier lieu de corriger la date interne de ton
PC

--



Sans les bérouettes
"Jean-Paul GIORGETTI" a écrit dans le message
de news:
Salut à tous,

Je désire faire une procédure qui s'exécuterait toutes les heures (à
l'heure
pile) à partir de l'heure suivant l'ouverture du fichier.

J'ai donc créé un petit bout de code pour tester mais voilà que ma
procèdure
s'exécute plusieurs fois de suite (2, 3, 4 fois), je ne comprends pas
pourquoi, j'ai essayé d'y coller une instruction "Wait", mais cela n'a
rien
changé.
Je vous transmet ce que j'ai écrit, je suis preneur de toutes propositions
et explications.

Merci d'avance,

Jean-Paul


Sub AtHour()
Heure = Hour(Now) + 1
Heure = TimeValue(Str(Heure Mod 24) & ":00:00")
Application.OnTime Heure, "message"
End Sub



Sub message()
MsgBox "test"
'Application.Wait (Now + TimeValue("0:00:10"))
AtHour
End Sub





Avatar
JB
Bonsoir,

Dim temps
Sub majHeure()
Sheets("feuil1").[A1]=Now
temps = Now + TimeValue("00:00:1")
Application.OnTime temps, "majHeure"
End Sub

Sub auto_open()
majHeure
End Sub

Sub auto_close()
On Error Resume Next
Application.OnTime temps, Procedure:="majHeure", Schedule:úlse
End Sub

http://boisgontierjacques.free.fr/fichiers/OnTimeHeure.xls

JB
http://boisgontierjacques.free.fr/



On 18 avr, 11:43, Corto wrote:
Bonjour Jean-Paul GIORGETTI,
La fonction OnTime demande un timestamp complet (Date + heure)
Sub AtHour()
    Application.OnTime Now + TimeValue("00:10:00"), "message"
End Sub

Sub message()
    ActiveCell = Now
    ActiveCell.Offset(1, 0).Activate
    AtHour
End Sub

Corto




Salut à tous,

Je désire faire une procédure qui s'exécuterait toutes les heures (à l'heure
pile) à partir de l'heure suivant l'ouverture du fichier.

J'ai donc créé un petit bout de code pour tester mais voilà que ma procèdure
s'exécute plusieurs fois de suite (2, 3, 4 fois), je ne comprends pas
pourquoi, j'ai essayé d'y coller une instruction "Wait", mais cela n'a rien
changé.
Je vous transmet ce que j'ai écrit, je suis preneur de toutes proposit ions
et explications.

Merci d'avance,

Jean-Paul

Sub AtHour()
Heure = Hour(Now) + 1
Heure = TimeValue(Str(Heure Mod 24) & ":00:00")
Application.OnTime Heure, "message"
End Sub

Sub message()
MsgBox "test"
'Application.Wait (Now + TimeValue("0:00:10"))
AtHour
End Sub- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
Mishell
'Dans un module
Global heure

Sub test()
AtHour
End Sub

Sub AtHour()

heure = DateSerial(Year(Now + 1 / 24), Month(Now + 1 / 24), Day(Now + 1 /
24)) & " " & TimeSerial(Hour(Now + 1 / 24), 0, 0)

Application.OnTime heure, "message"
End Sub


Sub message()
AtHour
MsgBox Time

End Sub


Sub arretTimer()
On Error Resume Next
If heure <> "" Then
'Annuler le paramétrage du OnTime programmé précédemment.
Application.OnTime EarliestTime:=heure, _
Procedure:="AtHour", Schedule:úlse

End If


End Sub

'Code à mettre dans ThisWorkBook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
arretTimer
End Sub

Private Sub Workbook_Open()
test
End Sub


"Jean-Paul GIORGETTI" wrote in message
news:
Salut à tous,

Je désire faire une procédure qui s'exécuterait toutes les heures (à
l'heure
pile) à partir de l'heure suivant l'ouverture du fichier.

J'ai donc créé un petit bout de code pour tester mais voilà que ma
procèdure
s'exécute plusieurs fois de suite (2, 3, 4 fois), je ne comprends pas
pourquoi, j'ai essayé d'y coller une instruction "Wait", mais cela n'a
rien
changé.
Je vous transmet ce que j'ai écrit, je suis preneur de toutes propositions
et explications.

Merci d'avance,

Jean-Paul


Sub AtHour()
Heure = Hour(Now) + 1
Heure = TimeValue(Str(Heure Mod 24) & ":00:00")
Application.OnTime Heure, "message"
End Sub



Sub message()
MsgBox "test"
'Application.Wait (Now + TimeValue("0:00:10"))
AtHour
End Sub





Avatar
Jean-Paul GIORGETTI
Bonjour,

Tout à fait, sans doute une mauvaise manip lors de mes essais en modifiant
l'heure système.

Désolé.

Jean-Paul

"ponsinet.frederic363" a écrit dans le
message de news:
Il faudrait tout à fait en premier lieu de corriger la date interne de ton
PC

--



Sans les bérouettes
"Jean-Paul GIORGETTI" a écrit dans le
message

de news:
Salut à tous,

Je désire faire une procédure qui s'exécuterait toutes les heures (à
l'heure
pile) à partir de l'heure suivant l'ouverture du fichier.

J'ai donc créé un petit bout de code pour tester mais voilà que ma
procèdure
s'exécute plusieurs fois de suite (2, 3, 4 fois), je ne comprends pas
pourquoi, j'ai essayé d'y coller une instruction "Wait", mais cela n'a
rien
changé.
Je vous transmet ce que j'ai écrit, je suis preneur de toutes
propositions


et explications.

Merci d'avance,

Jean-Paul


Sub AtHour()
Heure = Hour(Now) + 1
Heure = TimeValue(Str(Heure Mod 24) & ":00:00")
Application.OnTime Heure, "message"
End Sub



Sub message()
MsgBox "test"
'Application.Wait (Now + TimeValue("0:00:10"))
AtHour
End Sub









Avatar
Jean-Paul GIORGETTI
Bonjour JB,

Merci pour la proposition que je n'ai pas encore testé, mais je voulais
profiter de ce Post pour te féliciter pour ton site.

En effet, celui-ci est une mine d'or et on prend la mesure de ta maîtrise de
ce merveilleux logiciel qu'est Excel.

Sans parler de la sobriété et de la vitesse de navigation de celui-ci dont
beaucoup de site pourrait (devrait)s'inspirer.

Avec mes respects,

Cordialement,

Jean-Paul

"JB" a écrit dans le message de news:

Bonsoir,

Dim temps
Sub majHeure()
Sheets("feuil1").[A1]=Now
temps = Now + TimeValue("00:00:1")
Application.OnTime temps, "majHeure"
End Sub

Sub auto_open()
majHeure
End Sub

Sub auto_close()
On Error Resume Next
Application.OnTime temps, Procedure:="majHeure", Schedule:úlse
End Sub

http://boisgontierjacques.free.fr/fichiers/OnTimeHeure.xls

JB
http://boisgontierjacques.free.fr/



On 18 avr, 11:43, Corto wrote:
Bonjour Jean-Paul GIORGETTI,
La fonction OnTime demande un timestamp complet (Date + heure)
Sub AtHour()
Application.OnTime Now + TimeValue("00:10:00"), "message"
End Sub

Sub message()
ActiveCell = Now
ActiveCell.Offset(1, 0).Activate
AtHour
End Sub

Corto




Salut à tous,

Je désire faire une procédure qui s'exécuterait toutes les heures (à
l'heure


pile) à partir de l'heure suivant l'ouverture du fichier.

J'ai donc créé un petit bout de code pour tester mais voilà que ma
procèdure


s'exécute plusieurs fois de suite (2, 3, 4 fois), je ne comprends pas
pourquoi, j'ai essayé d'y coller une instruction "Wait", mais cela n'a
rien


changé.
Je vous transmet ce que j'ai écrit, je suis preneur de toutes
propositions


et explications.

Merci d'avance,

Jean-Paul

Sub AtHour()
Heure = Hour(Now) + 1
Heure = TimeValue(Str(Heure Mod 24) & ":00:00")
Application.OnTime Heure, "message"
End Sub

Sub message()
MsgBox "test"
'Application.Wait (Now + TimeValue("0:00:10"))
AtHour
End Sub- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
Jean-Paul GIORGETTI
Bonjour,

Merci pour la proposition que je vais tester.

Bonne continuation,

Jean-Paul

"Mishell" a écrit dans le message de news:
ONS#
'Dans un module
Global heure

Sub test()
AtHour
End Sub

Sub AtHour()

heure = DateSerial(Year(Now + 1 / 24), Month(Now + 1 / 24), Day(Now + 1 /
24)) & " " & TimeSerial(Hour(Now + 1 / 24), 0, 0)

Application.OnTime heure, "message"
End Sub


Sub message()
AtHour
MsgBox Time

End Sub


Sub arretTimer()
On Error Resume Next
If heure <> "" Then
'Annuler le paramétrage du OnTime programmé précédemment.
Application.OnTime EarliestTime:=heure, _
Procedure:="AtHour", Schedule:úlse

End If


End Sub

'Code à mettre dans ThisWorkBook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
arretTimer
End Sub

Private Sub Workbook_Open()
test
End Sub


"Jean-Paul GIORGETTI" wrote in message
news:
Salut à tous,

Je désire faire une procédure qui s'exécuterait toutes les heures (à
l'heure
pile) à partir de l'heure suivant l'ouverture du fichier.

J'ai donc créé un petit bout de code pour tester mais voilà que ma
procèdure
s'exécute plusieurs fois de suite (2, 3, 4 fois), je ne comprends pas
pourquoi, j'ai essayé d'y coller une instruction "Wait", mais cela n'a
rien
changé.
Je vous transmet ce que j'ai écrit, je suis preneur de toutes
propositions


et explications.

Merci d'avance,

Jean-Paul


Sub AtHour()
Heure = Hour(Now) + 1
Heure = TimeValue(Str(Heure Mod 24) & ":00:00")
Application.OnTime Heure, "message"
End Sub



Sub message()
MsgBox "test"
'Application.Wait (Now + TimeValue("0:00:10"))
AtHour
End Sub









Avatar
Jean-Paul GIORGETTI
Bonjour Corto,

Merci, mais j'admets ne pas comprendre ce que vous entendez par "timestamp"
et je crois qu'en l'occurrence cela ne règle pas tout à fait mon problème.

Bonne continuation et à bientôt,

Jean-Paul

"Corto" a écrit dans le message de news:
#
Bonjour Jean-Paul GIORGETTI,
La fonction OnTime demande un timestamp complet (Date + heure)
Sub AtHour()
Application.OnTime Now + TimeValue("00:10:00"), "message"
End Sub

Sub message()
ActiveCell = Now
ActiveCell.Offset(1, 0).Activate
AtHour
End Sub

Corto

Salut à tous,

Je désire faire une procédure qui s'exécuterait toutes les heures (à
l'heure

pile) à partir de l'heure suivant l'ouverture du fichier.

J'ai donc créé un petit bout de code pour tester mais voilà que ma
procèdure

s'exécute plusieurs fois de suite (2, 3, 4 fois), je ne comprends pas
pourquoi, j'ai essayé d'y coller une instruction "Wait", mais cela n'a
rien

changé.
Je vous transmet ce que j'ai écrit, je suis preneur de toutes propositions
et explications.

Merci d'avance,

Jean-Paul


Sub AtHour()
Heure = Hour(Now) + 1
Heure = TimeValue(Str(Heure Mod 24) & ":00:00")
Application.OnTime Heure, "message"
End Sub



Sub message()
MsgBox "test"
'Application.Wait (Now + TimeValue("0:00:10"))
AtHour
End Sub






Avatar
Jacques ALARDET
Bonjour,

J'ai testé les macros sous Excel V2003 : ça marche correctement



"Jean-Paul GIORGETTI" a écrit dans le message
de news:
Salut à tous,

Je désire faire une procédure qui s'exécuterait toutes les heures (à
l'heure
pile) à partir de l'heure suivant l'ouverture du fichier.

J'ai donc créé un petit bout de code pour tester mais voilà que ma
procèdure
s'exécute plusieurs fois de suite (2, 3, 4 fois), je ne comprends pas
pourquoi, j'ai essayé d'y coller une instruction "Wait", mais cela n'a
rien
changé.
Je vous transmet ce que j'ai écrit, je suis preneur de toutes propositions
et explications.

Merci d'avance,

Jean-Paul


Sub AtHour()
Heure = Hour(Now) + 1
Heure = TimeValue(Str(Heure Mod 24) & ":00:00")
Application.OnTime Heure, "message"
End Sub



Sub message()
MsgBox "test"
'Application.Wait (Now + TimeValue("0:00:10"))
AtHour
End Sub






Avatar
Jean-Paul GIORGETTI
Bonjour,

Merci d'avoir testé, je travaille avec excel 2000, peut-être une différence
de traitement entre les versions ?

Bonne continuation,

Jean-Paul

"Jacques ALARDET" a écrit dans le message de news:

Bonjour,

J'ai testé les macros sous Excel V2003 : ça marche correctement



"Jean-Paul GIORGETTI" a écrit dans le
message

de news:
Salut à tous,

Je désire faire une procédure qui s'exécuterait toutes les heures (à
l'heure
pile) à partir de l'heure suivant l'ouverture du fichier.

J'ai donc créé un petit bout de code pour tester mais voilà que ma
procèdure
s'exécute plusieurs fois de suite (2, 3, 4 fois), je ne comprends pas
pourquoi, j'ai essayé d'y coller une instruction "Wait", mais cela n'a
rien
changé.
Je vous transmet ce que j'ai écrit, je suis preneur de toutes
propositions


et explications.

Merci d'avance,

Jean-Paul


Sub AtHour()
Heure = Hour(Now) + 1
Heure = TimeValue(Str(Heure Mod 24) & ":00:00")
Application.OnTime Heure, "message"
End Sub



Sub message()
MsgBox "test"
'Application.Wait (Now + TimeValue("0:00:10"))
AtHour
End Sub