Private Sub EnvoiMailOutlookAvecFeuilJointe()
Dim OutApp As Object, OutMail As Object, NewB As Workbook
'---- variables nécessaire ------------
NomDuClasseur$ "NomDeLaPieceJointe.xls" ' avec son extention !
NomDeLaFeuille$ = "Feuil3"
AdresMail$ = "nom@site.fr"
AdresMailCC$ = "nom@site.fr"
AdresMailBCC$ = "nom@site.fr"
Sujet$ ""
Message$ = ""
'--------------------------------------
' Copie la feuille (ce qui cré un nouveau classeur qui devient actif)
CheminFichier$ = ThisWorkbook.Path & "\" & NomDuClasseur$ 'ajoute le chemin
Sheets(NomDeLaFeuille$).Copy
Set NewB = ActiveWorkbook
ActiveWorkbook.SaveAs CheminFichier$
' ENVOI
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error GoTo ErreurNET
With OutMail
.To = AdresMail$
.CC = AdresMailCC$
.BCC = AdresMailBCC$
.Subject = Sujet$
.Body = Message$
.Attachments.Add NewB.FullName
.Display
End With
' close le classeur et le supprime du disque
ActiveWorkbook.Close
Kill CheminFichier$
' fin
Set OutApp = Nothing: Set OutMail = Nothing: Set NewB = Nothing
On Error GoTo 0: Err.Clear
Exit Sub
ErreurNET: ' sous prog erreur
Msg$ = "Erreur " & Err.Source & " No " & Err.Number & vbLf & vbLf & Err.Description
T$ = "Envoi Mail: Problème de connexion !?"
MsgBox Msg$, vbCritical, T$, Err.HelpFile, Err.HelpContext
On Error GoTo 0: Err.Clear
End Sub