Problème tableur automatisation envoi de mail à échéance

Asters

XLDnaute Nouveau
Bonjour à vous,
Je me permets de vous solliciter car je rencontre une difficulté pour automatiser l'envoi de mails depuis mon tableur (vous trouverez le détail de mon besoin en fichier joint).
Je me suis inspiré de cette proposition pour créer ma macro en la mixant avec cette macro :
VB:
Sub Alertes()


    Dim C As Range, OL As Object, M As Object, Plage As Range


    Set olApp = CreateObject("Outlook.application")


    With Sheets("Feuil1")


        Set Plage = .Range(.[A2], .Cells(.Rows.Count, 1).End(xlUp))


    End With


    For Each C In Plage


        If C.Offset(, 1) - Date = 3 Then


            Set M = olApp.CreateItem(olMailItem)


            With M


                .Subject = C.Offset(, 3)


                .Body = C.Offset(, 4)


                .Recipients.Add C.Offset(, 2)


                '.display


                .Send


            End With


        End If


    Next C


End Sub


La macro fonctionne dans un simple tableau avec une
seule colonne de date. La voici :

VB:
Sub EnvoiMailCDO()


    Dim C As Range, OL As Object, M As Object, Plage As Range


    Set olApp = CreateObject("CDO.Configuration")


    With Sheets("Feuil2")


        Set Plage = .Range(.[A2], .Cells(.Rows.Count, 1).End(xlUp))


    End With


    For Each C In Plage


        If C.Offset(, 5) - Date = 3 Then


            Set mConfig = CreateObject("CDO.Configuration")


            mConfig.Load -1


            Set mChps = mConfig.Fields


            With mChps


                .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2


                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"


                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465


                .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = "1"


                .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "***@gmail.com "


                .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "****"


                .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "True"


                .Update


            End With


            Set mMessage = CreateObject("CDO.Message")


            With mMessage


                Set .Configuration = mConfig


               .To = C.Offset(, 2)


            .From = "***"


                .Subject = "Echéance projet *** à venir"


                .TextBody = C.Offset(, 4).Text & "Bonjour, je vous informe que d'ici 3 jours il conviendra de **"


                 .Send


            End With


        End If


    Next C


End Sub

Cependant mon besoin
porte sur un nombre important de colonnes de dates à cibler pour l'envoi des mails (ainsi que sur plusieurs projets).
Par ailleurs, je souhaite différencier le destinataire selon le projet en question.
Et ajouter un autre destinataire en copie.
Je précise que je débute en VBA, j'ai essayé de trouver des exemples qui correspondraient à mon besoin mais je n'ai pas trouvé de solution adéquate. J'ai essayé de m'inspirer de ce qui existantait, mais cette méthode a clairement ses limites.
Donc si quelqu'un aurait un peu de temps à consacrer à ce problème, je lui en serais vraiment reconnaissant. Merci par avance.
 

Pièces jointes

  • envoi mail cdo - Copie.xlsm
    21.6 KB · Affichages: 22
Dernière édition:

Discussions similaires

Réponses
1
Affichages
302

Statistiques des forums

Discussions
311 735
Messages
2 082 024
Membres
101 873
dernier inscrit
excellllll