Envoyer mail automatiquement selon une date excel

Bonjour,

Je souhaite envoyer des mails automatiquement selon des dates reportées dans un tableau excel, sachant que je n’y connais rien sur le langage VBA. Je travaille sur un projet et cela rentre dans le cadre de mon projet. J’ai des documents qui arrivent bientôt à leurs dates de fin et je souhaite envoyer un mail type aux personnes concernées pour qu’elles le reçoivent sans que j’intervienne et selon la date de fin de leurs documents.

Pouvez-vous m’aider ?

Merci d’avance

1 « J'aime »

Houlà, c’est beau mais ça demande pas mal de travail. :grinning:

je suis prête à me lancer dedans !

Déjà il faut un exemple de fichier où on peut trouver :

une date d’envoie, et les contenu du mail :
Destination,
Object
Message
Un lien de la pièce jointe (si nécessaire)

Bonjour ,
un fichier que m’avait construit FFO et qui pourrait repondre a votre demande (avec quelques modifications bien sur mais qui est dans l’idée d’envois de mail en auto a l’ouverture du fichier)
Franck
TEST MAIL 1(1).xlsm (28,9 Ko)

ce n’est pas si compliqué
un exemple avec 1 mail et un listing
TEST MAIL 1(1).xlsm (30,8 Ko)

Bonjour,

pour le présent sujet, je suppose que l’ordinateur qui envoie automatiquement un mail à une
certaine date ne doit jamais être éteint ! ou s’il est en veille, est-ce qu’il peut « se réveiller »
et « sortir de sa mise en veille » pour envoyer le mail ? si c’est non, il faut alors désactiver
la mise en veille ; dans tous les cas, ce n’est pas top :

ni pour la consommation d’électricité et les grosses factures EDF, ni pour l’écologie de la
planète (effet de serre, CO², réchauffement climatique et autre) ; je ne suis pas un fan
écolo, mais avec les catastrophes naturelles contemporaines (sécheresse trop aride ou
au contraire grosses inondations comme en Espagne, voire tsunamis au Japon)
:cold_sweat:

La macro ne s’exécute qu’a l’ouverture du fichier excel ,je ne connais pas ,à date, de macro qui fasse ouvrir un ordinateur et un fichier excel !!

1 « J'aime »

merci pour votre réponse ; d’un autre côté, peut-être que ça serait possible via le planificateur de
tâches de Windows ? il lancerait Excel en précisant le fichier Excel .xlsm à ouvrir, puis la macro
Workbook_Open() ferait la suite ; peut-être aussi avec la méthode Application.OnTime ?

Hello
personnellement, j’utilise le planificateur de tâche pour ouvrir mes fichiers Excel à une heure précise, enfin, je devrais dire, j’utilisais pour des commandes qui devaient être effectués au plus tard à une heure définie

1 « J'aime »

Bonjour @taz067,

exemple de ce genre de tâche à effectuer « au plus tard » :

Sub Urgent()
  MsgBox "Ne pas remettre au lendemain ce qui peut être fait le jour même !"
End Sub

déplacer le problème d’Excel vers Outlook, on peut plannifier le moment d’envoyer avec DeferredDeliveryTime mais Outlook doit être actif à ce moment, donc on prépare toutes les anniversaires de cette semaine ou mois et on les envoie, mais ils restent temporairement dans la boîte « Out » jusqu’au bon moment.
(PS. je ne sais pas tester cela, donc …)

Sub Mailing(sTo As String, Optional sSujet As String, Optional sBody As String, Optional PJ)

     With CreateObject("Outlook.Application")
          With .CreateItem(0)
               .To = sTo
               .Subject = sSujet             'le sujet
               .Body = sBody                 'le contenu
               Select Case VarType(PJ)
                    Case vbString
                         .Attachments.Add PJ
                    Case vbVariant
                         For i = LBound(PJ) To UBound(PJ)
                              .Attachments.Add PJ(i)
                         Next
               End Select
               .DeferredDeliveryTime = DateSerial(2024, 12, 25) + TimeSerial(9, 0, 0)     'Noel 9 h le matin
               .Display
               .Send
          End With
          '.Quit
     End With
End Sub

C’est un document confidentiel je ne peux pas le partager…