Private Sub CommandButton2_Click() Dim Source As Range, Gr As Object
Dim sPath As String, sFic As String
Dim Dest As String, Sujet As String
Dim ObjOutlook As Object
Dim ObjMail As Object
' Définir le chemin d'accès
sPath = ThisWorkbook.path & "\"
' Définir le nom du fichier
sFic = "ImageDePlage.jpg"
'******************************************************
'*** Enregistre la zone sélectionnée en format .JPG ***
'******************************************************
' Un espace après un nom d'onglet n'est vraiment pas conseillé !?
Set Source = Sheets("Facture ").Range("A1:H52")
Source.CopyPicture xlScreen, xlPicture
Set Gr = Sheets(2).ChartObjects.Add(0, 0, Source.Width, Source.Height)
Gr.Chart.Paste
Gr.Chart.Export sPath & sFic, "JPG"
Gr.Delete
Set Gr = Nothing
Set Source = Nothing
' Récupérer ou définir les nformations nécessaires au mail
Dest = Sheets(1).Range("E21").Value
Objet = "Envoi automatisé de : ImageDePlage.jpg" 'Sujet
Corps = "Bonjour, " & Chr(10) & "Vous trouverez ci-joint une copie de l'état de vos règlements pour votre activité. " & _
Chr(10) & "Merci de bien vouloir me faire un retour de tout règlement non encore effectué. " & Chr(10) & _
vbCrLf & _
"Nous restons bien entendu à votre disposition pour tout renseignement complémentaire." & _
vbCrLf & _
"Cordialement," & Chr(10) & _
"Webperegrino "
' Créer une instance d'outlook
Set ObjOutlook = CreateObject("Outlook.application")
Set ObjMail = ObjOutlook.Createitem(0)
' Avec le mail
With ObjMail
.Subject = Objet
.body = Corps
.to = Dest
.Attachments.Add sPath & sFic
.Send
'.Save
End With
'***********************
Application.DisplayAlerts = True
Set ObjOutlook = Nothing
Set ObjMail = Nothing
End Sub