Bonjour à vous,
Je me permets de vous solliciter car je rencontre une difficulté pour automatiser l'envoi de mails depuis mon tableur (j'ai réalisé un tableur diffusable si besoin pour expliciter mon propos).
Je me suis inspiré des solutions de ce fil de discussion pour ma macro en la modifiant pour passer par CDO.
Voici ma macro :
La macro fonctionne dans un simple tableau avec une
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 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
seule colonne de date.
Cependant mon besoin porte sur un nombre important de colonnes de dates à cibler pour l'envoi des mails (ainsi que sur plusieurs projets en ligne). Un même projet aura donc plusieurs dates d'échéances. Donc j'imagine qu'il faut changer cette partie "If C.Offset(, 5) "
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 existait, mais cette méthode a clairement ses limites. Je me suis abstenu de mettre mon tableur de test (sans infos perso), comme cela est vivement recommandé, mais je peux le joindre au besoin.
Si quelqu'un aurait un peu de temps à consacrer à ce problème, je lui en serais vraiment reconnaissant. Merci par avance.
Partager