VBA déclencher une macro à un moment précis

Bonsoir au forum,

je recherche 2 codes :

1- déclencher une macro tout les vendredi à 8 h (par exemple)

2- déclencher une macro tout les jours à 22 h (par exemple)

juste avec l'horloge interne.

Pouvez-vous m'aider ?

cordialement

Claude.

bonsoir,

Voir dans le panneau de configuration de windows : Taches planifiées

A+

re,

merci galopin01, mais j"ai besoin de çà seulement dans un fichier précis, à l'intérieur

d'une procédure.

tu vois ?

Claude.

Nooooooooon... je ne vois pas bien !

Que ce fichier soit un fichier Excel ou non celà suppose que le fichier est ouvert tous les jours (ou tous les vendredis) pour que la macro puisse s'exécuter :

Si le fichier n'est pas ouvert le vendredi à 7h59 aucune macro ne peut s'exécuter à 8h00 !

Maintenant, si tu limites ta question à la condition que le fichier soit ouvert dans ce cas voir l'aide de OnTime (méthode) ...et poser l'instruction dans le Workbook_open du classeur en question.

A+

re,

Je précise que le fichier est ouvert en permanence,

il s'agit d'une main courante, et les agents de saisie sont en équipes (3x8)

je voudrais faire apparaitre des" pense-bête" à certains moments

merci

Claude.

Regarde l'aide de OnTime c'est très bien expliqué.

Yaka mettre quelques instructions dans le Workbook_Open pour exécuter telle ou telle macro toutes les heures ou tous les jours à telle heure...

ça devrait te faire quelques chose comme ça :

(Dans le ThisWorkbook:

Private Sub Workbook_Open()

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

Application.OnTime TimeValue("22:00:00"), "ProcTousLesJours"

End Sub

Bien sur ne pas oublier de programmer les

Sub ProcVendredi() et Sub ProcTousLesJours()

...pour obtenir les MsgBox escomptés.

A+

Bonsoir galopin01 et au forum,

Je viens de faire un test à 21 h, c'est nickel !

Vraiment merci

amicalement

Claude.

Bonjour à tous,

Dans le même esprit :

Private Sub Workbook_Open()
    Application.OnTime TimeValue("21:00:00"), "ProcTousLesJours"    'changement d'équipe
End Sub

Afin d'afficher un bouton de sauvegarde toutes les heures, (24h sur 24).

boucle ?

merci d'avance

bonne journée

Claude.

dubois a écrit :

boucle ?

Perdu !

Récursif :

Dans Workbook_Open :

Private Sub Workbook_Open() 
ToutesLesHeures
End Sub

Dans Module1 :

Dim H As Date

Sub ToutesLesHeures()
H = Now + TimeValue("00:00:15")
Application.OnTime Format(H, "hh:mm:ss"), "ToutesLesHeures"
If MsgBox("Lancer la sauvegarde ?", 36, "Sauvegarde périodique") = 6 Then
MsgBox "Sauvegarde en cours !"
End If
MsgBox "La prochaine alerte aura lieu à : " & Format(H, "hh:mm:ss") & " !"
End Sub

Sub AnnuleToutesLesHeures()
Application.OnTime Format(H, "hh:mm:ss"), "ToutesLesHeures", , False
End Sub

Pour les besoins de la démo la tempo est réglé sur 15 secondes. Il faudra règler sur "01:00:00",

Attention : Quand une procédure OnTime est programmée, elle tente de s'exécuter même si le classeur est fermé. Ce qui peut entrainer quelques plantages...

Penser à désactiver tous les OnTime en cours avant de fermer le classeur, Dans le cas de ToutesLesHeures celle de la prochaine activation n'étant en principe pas connue, j'ai du la mémoriser...

Il serait prudent de lancer "AnnuleToutesLesHeures" avant de fermer le classeur quand celui-ci doit être fermé...

On pourrait automatiser cela dans Workbook_BeforeClose :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
AnnuleToutesLesHeures
End Sub

A+

Re...

Bien remarquer le :

Dim H As Date 

à placer dans module1 EN DEHORS de toute macro et AVANT la première macro. (juste après "Option Explicit" le cas échéant...)

Cette déclaration doit être comprise comme une variable commune aux deux macros.

Nota : par suite, s'il y a d'autres macros dans ce module cette variable ne doit pas être utilisée dans les autres macros de ce module.

Ok?

A+

Bonsoir à tous,

galopin01,

Encore une fois, tu me sauve la mise !

C'est parfait.

et en + avec des explications détaillées.

encore merci

Cordialement

Claude.

Bonjour, le sujet est un peu vieux mais je voudrais savoir si quelqu'un aurait une macro pour créer un enregistrement tous les 1er de chaque mois à 7h00 d'un classeur ouvert en permanence.

Rechercher des sujets similaires à "vba declencher macro moment precis"