Sub Envoi_Courriel()
Dim WSh As Worksheet, OutlookApp As Object, OutlookMail As Object, MTo$, CC$, BCC$, Subject$, Body$, Attachment$, WFct As WorksheetFunction
Set WSh = ActiveSheet 'remplacer Activesheet par la feuille qui contient les références D16, D19
Set WFct = Application.WorksheetFunction
With WSh
If .[D16] = "" Then Exit Sub 'Vérifier que c'est bien D16 qu'il faut prendre
If .[D19] = "DW" Then
With Worksheet("Reference")
MTo = .[G5] 'Adresse
CC = .[H5] & .[F6] 'Copie conforme
End With
Else
MTo = WFct.VLookup(WSh.[D16], Worksheets("Groupes").[A2:B601], 2, False) 'Adresse
With Worksheets("Formulaire")
Subject = .[D21] & " Suivi " & [D7] & " n° " & .[D4] 'Objet
End With
If Worksheets("Formulaire").[D21] = "Mail1" Then
With Worksheets("Mail1")
Body = .[A1] & .[A2] & .[A3] & .[A4] & .[A5] & .[A6] & .[A7] & .[A8] & .[A9] & .[A10] 'Texte du mail cas "Mail1"
End With
Else
With Worksheets("Mail-relance")
Body = .[A1] & .[A2] 'Texte du mail autres cas
End With
End If
'Copie conforme cas autre que DW (traité plus haut)
With Worksheet("Reference")
Select Case WSh.[D19]
Case "IEC"
CC = .[F1] & .[F6]
Case "FCR"
CC = .[F2] & .[F6]
Case "MDP"
CC = .[F3] & .[F6]
Case "RCR"
CC = .[F4]
Case Else
CC = ""
End Select
End With
End If
End With
'Création d'une instance d'OUTLOOK
Set OutlookApp = CreateObject("Outlook.Application")
'Création d'un mail
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = MTo 'Destinataire
.CC = CC 'Copie conforme
.BCC = BCC 'Copie cachée
.Subject = Subject 'Objet
.Body = Body 'Corps du mail
If Attachments <> "" Then .Attachments.Add Filename 'Pièce jointe (faire une boucle si plusieurs PJ)
.Display 'à remplacer par .Send pour un envoi immédiat
End With
End Sub