Bonjour,

je voudrais envoyer un mail a plusieurs destinataires, en récupérant les adresses mail dans une colonne et en ayant 2 condition qui sont des statuts (0 ou 3) et (TRUE ou FALSE) sur la meme ligne que le mail.
De plus je voudrais qu'il envoie le mail une seul fois et non à chaque fois qu'il rencontre une adresse mail (certaine personnes sont présente plus de 10x = 10 mail).

Merci d'avance de m'aider, je vous en serai tres reconnaissant.


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
34
35
36
37
38
Sub Create_Mail_Control_()
 
    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range
    Dim StrBody As String
 
    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")
 
    On Error GoTo cleanup
    For Each cell In Columns("G").Cells.SpecialCells(xlCellTypeConstants)
        If cell.Value Like "?*@?*.?*" And _
           (Cells(cell.Row, "M").Value) = "0" And _
          cela ne marche pas ==>(Cells(cell.Row, "K").Value) = "TRUE" Then
   'ajouter la condition colonne "K" = "TRUE"
   'probleme de redondance avec les adresses mail, si le mail est envoyé a <a href="mailto:xxx@xxx.com">xxx@xxx.com</a> ne pas le renvoyer ==> je ne sais pas comment faire
 
            Set OutMail = OutApp.CreateItem(0)
            On Error Resume Next
            With OutMail
                .To = cell.Value
                '.cc = "monboss@xxx.com"
                .Subject = "Control" & Cells(cell.Row, "C")
                .Body = "Hi " & Cells(cell.Row, "F").Value & vbCrLf & vbCrLf & "Could you please fill the file available on..." 
                .Attachments.Add ("F:\")
                .Send
 
            End With
            On Error GoTo 0
            Set OutMail = Nothing
        End If
    Next cell
 
cleanup:
    Set OutApp = Nothing
    Application.ScreenUpdating = True
End Sub