Comment declancher un msgbox tout les 7 jours a une heure precis [Résolu]

Messages postés
20
Date d'inscription
lundi 20 août 2012
Statut
Membre
Dernière intervention
13 octobre 2013
- - Dernière réponse : siaka7
Messages postés
1
Date d'inscription
samedi 23 janvier 2016
Statut
Membre
Dernière intervention
23 janvier 2016
- 23 janv. 2016 à 23:22
bonjour tous le monde

debutant en vba je suis a la recherche d'un bout de code qui me permetrait de declancher un msgbox tout les 7 jours a une heure bien precise.
merci d'avance a vous qui me lirez
Afficher la suite 

2 réponses

Messages postés
26497
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 octobre 2019
316
0
Merci
Bonjour,

Si ta question concerne le VBA, tu n'as pas posté dans la bonne section du forum.

Ensuite, pour répondre à votre question, je vous inviterai à regarder du côte de : Application.OnTime

Par contre, si vous souhaitez declancher un msgbox tout les 7 jours a une heure bien precise, il faudra bien entendu que votre fichier contenant la macro soit ouvert à cette période là...

=> Si vous ne souhaitez réellement n'avoir qu'une MSGBOX, je vous inviterai plutôt à le faire en VB Script, puis d'appeler ce script depuis le planificateur de taches de Windows..

'msgbox en vbs..
msgbox "coucou"

WJ9
Messages postés
20
Date d'inscription
lundi 20 août 2012
Statut
Membre
Dernière intervention
13 octobre 2013
-
Bonjour jordane45

merci deja de l'interet porté a ma question.
pour plus de precision en fait se que je cherche a faire s'est tous simplement declancher un msgbox sous access tous les 7 jours a une heure precise
j'ai une table ouverture A avec 3 champ (Id=numauto / heure execution=heure / derniere execution=date heure
j'ai un formulaire ouverture A dans lequel j'ai glisser dans "sur minuterie" une procedure evenementiel---->
Private Sub Form_Timer()
Dim varHeureExec As Variant
Dim varDerniereExec As Variant


' Lire l'heure d'exécution
varHeureExec = DLookup("[heure execution]", "[ouverture A]")
If IsNull(varHeureExec) Then Exit Sub

' Lire l'heure de dernière exécution
varDerniereExec = DLookup("[derniere execution]", "[ouverture A]")
If IsNull(varDerniereExec) Then varDerniereExec = #1/1/1900 12:00:00 PM#

' Si une exécution a eu lieu aujourd'hui, annuler le processus
If Format(varDerniereExec, "dd/mm/yyyy") = Format(Date, "dd/mm/yyyy") Then Exit Sub

'si la date est superieur de 7 jours alors execute message
If DateDiff("d", Date, a) >= 7 Then
MsgBox "OUVERTURE A !!!", vbInformation

' Mettre à jour la date d'exécution
CurrentDb.Execute "UPDATE [ouverture A] SET [derniere execution]=#" & _
Format(Now, "mm/dd/yyyy hh:nn:ss") & "#"
End If
End Sub
mais sa fonctionne pas :'(
Commenter la réponse de jordane45
Messages postés
20
Date d'inscription
lundi 20 août 2012
Statut
Membre
Dernière intervention
13 octobre 2013
0
Merci
Bonjour jordane45

merci deja de l'interet porté a ma question.
pour plus de precision en fait se que je cherche a faire s'est tous simplement declancher un msgbox sous access tous les 7 jours a une heure precise
j'ai une table ouverture A avec 3 champ (Id=numauto / heure execution=heure / derniere execution=date heure
j'ai un formulaire ouverture A dans lequel j'ai glisser dans "sur minuterie" une procedure evenementiel---->
Private Sub Form_Timer()
Dim varHeureExec As Variant
Dim varDerniereExec As Variant


' Lire l'heure d'exécution
varHeureExec = DLookup("[heure execution]", "[ouverture A]")
If IsNull(varHeureExec) Then Exit Sub

' Lire l'heure de dernière exécution
varDerniereExec = DLookup("[derniere execution]", "[ouverture A]")
If IsNull(varDerniereExec) Then varDerniereExec = #1/1/1900 12:00:00 PM#

' Si une exécution a eu lieu aujourd'hui, annuler le processus
If Format(varDerniereExec, "dd/mm/yyyy") = Format(Date, "dd/mm/yyyy") Then Exit Sub

'si la date est superieur de 7 jours alors execute message
If DateDiff("d", Date, a) >= 7 Then
MsgBox "OUVERTURE A !!!", vbInformation

' Mettre à jour la date d'exécution
CurrentDb.Execute "UPDATE [ouverture A] SET [derniere execution]=#" & _
Format(Now, "mm/dd/yyyy hh:nn:ss") & "#"
End If
End Sub
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212 -
Non ! Quel besoin d'un "rappel" ?
On ne suit pas un PROJET !
Isole ta difficulté et expose-là !
A toi de voir ensuite comment utiliser la solution dans ton projet !
Nous ne sommes pas là pour "assembler/concevoir" les solutions à des difficultés techniques, mais pour les résoudre. Le reste (l'assemblage) c'est à toi et correspond à ta conception.
WJ9
Messages postés
20
Date d'inscription
lundi 20 août 2012
Statut
Membre
Dernière intervention
13 octobre 2013
-
s'etait juste histoire de rendre service au cas ou une personne avais les meme idees ;)
mais soite....je respecte votre ideologie et ne ferais pas de rapport entre les 2 post ;) (y)
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212 -
Ce n'est pas une "idéologie", mais une discipline nécessaire.
Qui viendrait chercher le reste de ton appli dans une question ouverte pour un point bien précis déclenchement d'une boîte de message à intervalle régulier. Déclenchement, quel que soit le message.
WJ9
Messages postés
20
Date d'inscription
lundi 20 août 2012
Statut
Membre
Dernière intervention
13 octobre 2013
-
Ceci dit une petite erreur s'etait glissé dans le code.....
Voici donc la rectification pour que la MsgBox se declanche a une heure bien precise tous les 7 jours.


Private Sub Form_Timer()
Dim varHeureExec As Variant
Dim varDerniereExec As Variant


' Lire l'heure d'exécution
varHeureExec = DLookup("[heure execution]", "[ouverture]")
If IsNull(varHeureExec) Then Exit Sub

' Lire l'heure de dernière exécution
varDerniereExec = DLookup("[derniere execution]", "[ouverture]")
If IsNull(varDerniereExec) Then varDerniereExec = #1/1/1900 12:00:00 PM#

' Si une exécution a eu lieu aujourd'hui, annuler le processus
If Format(varDerniereExec, "dd/mm/yyyy") = Format(Date, "dd/mm/yyyy") Then Exit Sub

'si la date est superieur de 7 jours alors execute message
If DateDiff("d", varDerniereExec, Date) >= 7 And Time > varHeureExec Then
MsgBox "OUVERTURE !!!", vbInformation

' Mettre à jour la date d'exécution
CurrentDb.Execute "UPDATE [ouverture] SET [derniere execution]=#" & _
Format(Now, "mm/dd/yyyy hh:nn:ss") & "#"
End If
End Sub
siaka7
Messages postés
1
Date d'inscription
samedi 23 janvier 2016
Statut
Membre
Dernière intervention
23 janvier 2016
-
Merci, j'ai une question. Si on voudrai appliquée cela a une question table machine par exemple où elle a une date de graissage et une prochaine date de graissage et on voudrai afficher une alerte a 2 jrs de la date du prochain graissage de chaque machine. Comment cela se ferra. Encore merci de votre proposition
Commenter la réponse de WJ9