Option Explicit ' Rendre obligatoire la définition des variables
' cela évite les erreur de noms et permet un débogage plus facile
Const olMailItem As Integer = 0
Sub EnrEtEnvoiPDF()
Dim OutApp As Object 'Déclaration de l'objet Outlook
Dim OutMail As Object 'Déclaration de l'objet mail
Dim Sht As Object ' Déclaration de l'objet feuille
Dim dLig As Long, Lig As Long
Dim sPath As String, sNomFic As String
Dim NumSem As Integer
' Définir la feuille à traiter
Set Sht = ThisWorkbook.Sheets("MATRICE")
' Définir le chemin des PDF
sPath = ThisWorkbook.Path & "\"
' Numéro de semaine
NumSem = Sht.Range("L2").Value
' Nom du fichier
sNomFic = "Feuille heures semaine N°_" & NumSem & "_" & Format(Date, "dd-mm-yyyy") & ".pdf"
'
' Exporter la feuille en PDF
Sht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & sNomFic, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'
' Créer unes instance outlook
Set OutApp = CreateObject("Outlook.Application")
With OutApp.Createitem(olMailItem)
.Display ' Pour afficher la signature si existante
.SentOnBehalfOfName = "sssss.ssssss@gmail.com" ' Adresse de l'émetteur (pas obligatoire)
.To = "AdresseMailduDestiantaire"
.CC = "AdresseMailEnCopie"
.BCC = "AdresseMailCopieCachée"
.Subject = "Mon sujet"
.HTMLBody = "Bonjour,<br>" _
& "Vous trouverez ci-joint... blabla" & "<br>" & .HTMLBody
' Joinde le PDF
.Attachments.Add sPath & sNomFic
'.Send ' Envoyer le mail
End With
' Libérer la mémoire
Set OutMail = Nothing: Set OutApp = Nothing: Set Sht = Nothing
End Sub