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.
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)
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)…
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
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