Execution d'une macro 1 fois par semaine

Résolu
Pyrisis Messages postés 9 Statut Membre -  
Pyrisis Messages postés 9 Statut Membre -
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

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
  2. Pyrisis Messages postés 9 Statut Membre 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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      Travailles-tu dans Excel? Ta macro est-elle écrite en VBA?
      0
      1. Pyrisis Messages postés 9 Statut Membre 1 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Oui je travaille sur excel et ma macro est écrite en vba
        0
      2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Pyrisis Messages postés 9 Statut Membre
         
        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
    2. Pyrisis Messages postés 9 Statut Membre 1
       
      Merci beaucoup ça marche !!!!
      merci merci merci
      0