Insertion d'une plage de cellule sélectionnée dans mail format image

Bonjour,

Actuellement avec ma macro je peux envoyer un mail à partir d'excel en intégrant en pièce jointe un tableau que je sélectionne lors de l'activation de ma macro.

J'aimerai que ce tableau soit aussi intégré en format image dans le corps du message .

Mais je n'arrive pas à passer cette étape.

Je pense que cette partie de la macro ne fonctionne pas :

InsertCells.CopyPicture xlScreen

ActiveSheet.Paste 'cela me crée mon tableau mais colle l'image dans le tableau alors que je le veux dans le mail....

Application.CutCopyMode = False

Pourriez-vous m'aider?

Je vous remercie et reste attentif à vos retours.

Cordialement,

Xavier

5analyse.xlsm (40.25 Ko)

Bonjour Xavier et bienvenue,

à tester,

Sub SendRangeByMail()
Dim rngeSend As Range

With Application
    On Error Resume Next
    Set rngeSend = Sheets("Feuil2").Range(Range("B1").CurrentRegion.Address) 'à adapter
    If rngeSend Is Nothing Then Exit Sub
    sFile = Environ("Temp") & "\XLRange.htm"
    On Error GoTo 0
    .ActiveWorkbook.PublishObjects.Add(4, sFile, rngeSend.Parent.Name, rngeSend.Address, 0, "", "").Publish True
    Call PrepareOutlookMail(sFile)
    Kill sFile
End With
End Sub

Sub PrepareOutlookMail(sFileName)
Dim appOutlook As Outlook.Application
Dim oMail As Outlook.MailItem

   Set appOutlook = CreateObject("Outlook.Application")
   If Not (appOutlook Is Nothing) Then
      Set oMail = appOutlook.CreateItem(olMailItem)
        With oMail
         .To = "Adresse@mail.fr"
         .Subject = "Le sujet"
         .HTMLBody = ReadFile(sFileName)
'         .Attachments.Add (ThisWorkbook.FullName)
         .Display  'metre cette ligne en commentaire pour éviter l'affichage du mail
  '       .Send    'mettre cette ligne active pour l'envoi du mail sans qu'il soit affiché
        End With
      Set oMail = Nothing
      Set appOutlook = Nothing
   End If
End Sub

Public Function ReadFile(sFileName) As String
Dim fso As Object, fFile As Object
Dim sTemp As String
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set fFile = fso.OpenTextFile(sFileName, 1, False)
   sTemp = fFile.ReadAll
   fFile.Close
   Set fFile = Nothing
   ReadFile = sTemp
End Function

Bonjour ,

Merci pour votre réponse!

J'ai dans ce tableau des information que je ne souhaite pas envoyer : dans cette exemple je souhaite envoyer que les trois premières lignes du tableau mais parfois ce sera 5 ou 7 lignes. J'ai donc besoin de réaliser la sélection lorsque j'active la macro.

Je pense ne pas être loin si vous regardez ma macro que je vous ai envoyé mais il doit y a voir un code que je ne réalise pas bien.

Dans l'attente de vous lire.

Cordialement,

Xavier

En fait j'arrive à créer l'image mais elle est collée dans l'excel alors que je la souhaite dans le corps de mail.

Espérant être clair

Rechercher des sujets similaires à "insertion plage selectionnee mail format image"