Execution d'une macro 1 fois par semaine

Résolu
Pyrisis Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
Pyrisis Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai fais une macro qui envoie un mail selon un tableau, seulement j'aimerai que les mail soit envoyer 1 fois par semaine et non a chaque fois que l'on ouvre le fichier.
Comment pourrait-je faire

Ps: le document est disponible sur un serveur il faut donc que cela marche de n'importe quel ordinateur.

Merci d'avance

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonsoir, je te suggère d'enregistrer dans le fichier le moment où la macro travaille, donc de faire ainsi:
1) quand la macro commence à travailler, elle vérifie que le moment enregistré est plus récent qu'une semaine, sinon la macro ne fait rien
2) si le moment enregistré est plus ancien qu'une semaine, la macro remplace ce moment par maintenant, puis fait son travail habituel
qu'en pense-tu?
1
Pyrisis Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour, Cette solution me parait tous a fait satisfaisante.
Mais comment pourrais-je faire pour que la macro vérifie que l'enregistrement date de moins d'une semaine?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Travailles-tu dans Excel? Ta macro est-elle écrite en VBA?
0
Pyrisis Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   1 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Oui je travaille sur excel et ma macro est écrite en vba
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Pyrisis Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
par exemple:
Sub test()
Dim dernierboulot As Date
dernierboulot = Cells(7, 2).Value
If dernierboulot > Now() - 7 Then
    Debug.Print "rien à faire"
Else
    Debug.Print "au travail"
    Cells(7, 2).Value = Now()
End If

End Sub
0
Pyrisis Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci beaucoup ça marche !!!!
merci merci merci
0