VBA Programmer l'envoi d'un email via outlook

Bonjour,

Y a t il des lignes de code à ajouter dans ma macro VBA pour envoyer un email via Outlook pour une heure et/ou date précise.

Exemple, je veux envoyer mon code chaque vendredi à 16h 30min ou l'envoyer pour aujourd'hui à 15h.

Merci par avance.

Bonjour Dev007,

As-tu besoin d'un code complet pour envoyer un mail ?

Sinon tu as la propriété d'un Objet Mail

Avec dans mon exemple LaDate est une variable au format date

.DeferredDeliveryTime = LaDate

Cette propriété programme la livraison différé du mail dans OutLook

A+

Bonjour Gabin37,

Je te remercie pour ton retour,

Il m'affiche un message d'erreur en mettant ton code en surbrillance : .DeferredDeliveryTime

Erreur de compilation

Utilisation incorrecte de la propriété

Sub EnvoyerEmail(ByVal Sujet As String, ByVal Destinataire As String, ByVal Contenu As String)

Dim oOutlook As Outlook.Application
Dim oMailItem As Outlook.MailItem

Set oOutlook = CreateObject("Outlook.Application")
Set oMailItem = oOutlook.CreateItem(0)

'création de l'email
    With oMailItem

        .To = Destinataire
        .Subject = Sujet

        .BodyFormat = olFormatHTML
        .HTMLBody = "<html><p>" & Contenu & "</p></html>"

        .DeferredDeliveryTime ("11/10/2021, 10:00:00"), "SendEmail"

       .Send

    End With

End Sub

Sub TestEnvoiEmail()

        Call EnvoyerEmail("Test envoi email différé!!!", "test@test.com", "Ceci est un test blaaaaaaaaaaaaaaaaaaaaaaaaaaaa")

End Sub

Bonjour Dev007,

Je t'invite à essayer comme cela:

.DeferredDeliveryTime = ("12/10/2021 12:00:00")

A+

Jonjour Gabin37,

Ca fonctionne à merveille

STP, si je veux automatiser cet envoi d'email pour un jour défini par exemple chaque Vendredi vers 16h00, quel est la ligne à ajouter?

.DeferredDeliveryTime = ("Friday 16:00:00") ???

Je te remercie d'avance.

Je me suis aidé de ces liens (si tu veux en apprendre plus)

https://www.excel-pratique.com/fr/astuces_vba/format_dates

https://excel-malin.com/tutoriels/vba-tutoriels/gestion-des-dates-et-heures-en-vba/

J'ai réussis en créant une fonction qui cherche la date du prochain vendredi. Il existe peut être plus simple mais ça à l'air de fonctionner !

.DeferredDeliveryTime = (prochainvendredi & " 16:00:00")

et la fonction à mettre en dehors de la procédure (après End Sub)

Function prochainvendredi()
While WeekdayName(Weekday(Now + n, vbMonday)) <> WeekdayName(Weekday(#10/29/2021#, vbMonday))
n = n + 1
Wend
prochainvendredi = Format(Now() + n, "dd/mm/yy")
End Function

Bonjour Gabin37,

Je vais tester.

Merci pour tes réponses rapide et efficaces.

Rechercher des sujets similaires à "vba programmer envoi email via outlook"