Fonction ontime

zephir94

XLDnaute Impliqué
Bonjour à tous,

Je voudrais vous poser une question concernant la fonction ontime.

J'ai besoin de déclencher le vendredi à 8h une procédure.
Pour cela j'ai donc ajouté dans le Workbook_Open :

Code:
If Weekday(Date, 2) = 5 Then Application.OnTime TimeValue("08:00:00"), "ProcVendredi"

"Procvendredi" étant dans un module avec la procédure.

Si je lance le fichier en mettant comme heure d'Horloge du pc vendredi 07:59 à 8h ma macro s'exécute sans soucis, mais cette dernière ne fonctionne qu'une fois car évidement je l'appel à l'ouverture du fichier Excel.

Le fichier Excel va resté ouvert 24/24 comment répéter cette opération ? car j'ai recopié mon appel de procédure dans Procvendredi mais elle ne se reproduit pas ?
Merci par avance pour vos conseils
Cordialement
Zephir94
 

job75

XLDnaute Barbatruc
Re : Fonction ontime

Bonjour zephir94,

Code:
Private Sub Workbook_Open()
On Error Resume Next
Application.OnTime TimeValue("08:00:00"), "ProcVendredi", , False 'annule l'ordre
Application.OnTime TimeValue("08:00:00"), "ProcVendredi"
End Sub
Code:
Sub ProcVendredi()
If Weekday(Date) = 6 Then
  'suite du code
End If
End Sub
La procédure s'exécutera tous les jours à 8:00 mais le jour est testé.

Edit : il faut annuler l'ordre de lancement existant au cas où l'on ferme et rouvre le fichier.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Fonction ontime

Re,

Allons voyons, la procédure n'est exécutée, comme je l'ai dit, que le vendredi !

Notez que j'ai édité mon post précédent pour le cas où l'on ferme et rouvre le fichier dans la même session Excel.

A+
 

zephir94

XLDnaute Impliqué
Re : Fonction ontime

Oui pardon job75 j'avais mal lu ton post, mais je rencontre hélas le même problème l'opération ne se déclenche qu'une seule fois.
J'ai modifié ma date et heure système au vendredi 7h59 à 8h pas de soucis elle se déclenche.
Sans quitter mon fichier je remet mon horloge système vendredi à 7h59, arrivé à 8h ma macro ne se déclenche pas.

Je dois rater quelque chose !
Pourrais tu m'expliquer à part dans le worlbook_open ou dois-je écrire pour que la condition se répéte
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Fonction ontime

Re,

A l'ouverture du fichier Excel crée la séquence des ouvertures de chaque jour.

Une fois que l'heure d'un jour est passée il faut attendre le lendemain.

Si vous modifiez l'heure système (quelle idée saugrenue) il faut fermer et rouvrir le fichier pour créer une nouvelle séquence.

A+
 

zephir94

XLDnaute Impliqué
Re : Fonction ontime

Un grand merci pour cette précision, en effet je voulais tester manuellement si le déclenchement était cyclique donc tu me confirme que tous les vendredi à 8h ma macro se déclenchera en laissant le fichier ouvert 24/24 ?
je te remercie infiniment
 

job75

XLDnaute Barbatruc
Re : Fonction ontime

Bonsoir eriiiic,

zephir94 a fort bien compris que quand le 1er argument de OnTime est une heure la procédure s'exécute tous les jours.

Il ne faut surtout pas répéter l'ordre ensuite.

Il suffit de lire l'aide VBA et c'est facile à tester.

Bonne nuit.
 

eriiic

XLDnaute Barbatruc
Re : Fonction ontime

Bonjour,

Ah, j'étais persuadé qu'une fois exécuté l'évènement se désactivait et qu'il fallait le réarmé.
Le seul exemple de l'aide concerne un événement date+heure qui n'éclaire pas du tout ce point puisqu'ils réarment.
Je veux bien prendre note mais du coup j'ai fait une recherche et suis tombé sur ceci : Ce lien n'existe plus
(bon, lien censuré... Bref, exactement le même cas et elle ne se lançait qu'une fois)
Donc j'espère que zéphyr nous apportera la réponse exacte avec ses test :)
eric

edit : Ce lien n'existe plus (premier / remplacé par \)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Fonction ontime

Bonjour à tous


J'ai besoin de déclencher le vendredi à 8h une procédure.
zephir94
Pourquoi ne pas simplement utiliser le planificateur de tâche Windows en créant une tache: ?
• Tous les vendredi à 8h
• ouvrir le classeur
(en mettant la procédure à exécuter dans le Worbook_Open)

Au hasard (ou plutôt aux bons soins de Mister G. ) ,pour les détails sur le planificateur, voir ici .

NB:
j'utilise cette méthode au boulot (avec Excel et/ou des scripts VBS "autonomes"), et cela fonctionne très bien.
 
Dernière édition:

zephir94

XLDnaute Impliqué
Re : Fonction ontime

Bonjour Eric et Staple1600,

Ce fichier sert de synoptique d'aptitude à la conduite et doit être ouvert 24/24 et effectue un décompte journalier de jours restants avant une revalidation.
C'est pour cela que je m’intéresse à la fonction Ontime mais ce que je veux c'est que cette condition soit cyclique soit un jour donné de la semaine et le même bien sur ! car j'envoi un mail en automatique ce jour là aux conducteurs étant arrivé à 90 jours d'expiration
 

Statistiques des forums

Discussions
314 651
Messages
2 111 554
Membres
111 200
dernier inscrit
Ralfidu02