Sub EnvoiAutomatiqueMail()
Dim lignedep As Long
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim adresse As String
Dim message As String
Dim sujet As String
lignedep = 96
Index = lignedep
While chemin = ""
'ouvre une boite de dialogue pour choisir un répertoire
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
If .SelectedItems.Count > 0 Then
chemin = .SelectedItems(1)
End If
End With
Wend
'On vérifie si le dernier caractère est différent de "\"
If Right(chemin, 1) <> "\" Then
chemin = chemin & "\"
End If
'Boucle sur la liste des directions
While Worksheets("synthese").Cells(Index, 3).Value <> ""
'on renseigne B1 avec la valeur
Range("b1").Value = Cells(Index, 3).Value
'on nomme le fichier
NomFichier = Range("b1").Value & "- NOM DU FICHIER"
'on enregistre en PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & NomFichier & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
CurFile = chemin & NomFichier & ".pdf"
'on définit le sujet du mail
sujet = Range("b1").Value & " - SUJET DU MAIL"
'on pointe sur la cellule contenant l'adresse
adresse = Range("b92")
copie = Range("b93")
'on rédige le mesage
message = " Bonjour," & vbCrLf & "Veuillez trouver ci-joint le fichier "
'VBCRLF permet un retour à la ligne ‘VBCRLF permet un passage à la ligne dans le mail envoyé.
Set OutlookApp = CreateObject("outlook.application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.Subject = sujet
.To = adresse
.CC = copie
' CC ne doit pas être nul
.Body = message
.Attachments.Add CurFile
.Send
'on envoie le mail créé / peut être remplacé par .display pour préparer le mail sans l'envoyer
End With
'on passe à la ligne suivante
Index = Index + 1
Wend
End Sub