Créer un mail avec une plage de cellules insérée dedans

Bonjour à toutes et à tous,

Avec VBA je créé un nouveau mail avec signature, inscrit du texte et j'aimerais copier/coller un rapport de TCD dedans

Voilà ce que j'ai au départ (ma signature privée, n'apparait pas volontairement)

image

Et voici ce que j'aimerais obtenir

image

Je pense que c'est faisable, mais je n'y arrive pas avec GetInspector.WordEditor

' Création d'une instance Outlook pour envoyer un mail
  Set OutObj = CreateObject("Outlook.Application")
  If Err.Number <> 0 Then
    MsgBox "Merci de lancer Outlook SVP", vbCritical, "OUPS..."
    Set OutObj = Nothing
    Exit Sub
  End If
  Set Email = OutObj.CreateItem(olMailItem)
  Set WdDoc = Email.GetInspector.WordEditor

  With Email
    .Display
    ' Destinataire(s) du mail
    .To = sDest
    ' Copie du mail
    .CC = sCopie
    ' Sujet de l'eMail
    .Subject = "Demande d'approvisionnement "
    ' Corps du mail avec signature à la fin
    .HtmlBody = "Bonjour," & "<BR><BR>" _
    & "Ceci est un exemple<BR><BR>" & .HtmlBody
    ' Joindre le fichier précédemment créé
    .Attachments.Add sPath & sNomFic
    ' Copier / coller le TCD
    ThisWorkbook.Sheets("TCD").Range("A1:B" & dLigTCD).Copy
    Set Rng = WdDoc.Content
    Rng.InsertParagraphAfter
    Rng.Paste
    'Rng.PasteSpecial , DataType:=wdPasteMetafilePicture
    ' Envoyer l'email
    '.Send
  End With

Si quelqu'un pouvait m'aider, merci par avance

A+

Re,

Désolé pour le up, mais j'ai modifié mon titre afin qu'il soit plus explicite (enfin j'espère)

Si quelqu'un pouvait me dépanner, j'ai beau chercher mais rien ne fonctionne correctement

A+

Bonjour,

ci-dessous code :

Sub Envoi_Mail()
    '.....................................................................

    '// Définition des variables
    Dim OL As Object, myItem As Object, wDoc As Object, rng As Object
    Dim Plage_à_envoyer As Range

    '// attribution des données dans les variables
    With ThisWorkbook.Sheets("TCD")
        Set Plage_à_envoyer = .Range("A1:B" & dLigTCD)
    End With

    '// assignation application Outlook
    Set OL = CreateObject("Outlook.Application")
    If OL.Explorers.Count = 0 Then
        OL.Session.GetDefaultFolder(olFolderInbox).Display
        OL.ActiveExplorer.WindowState = olMinimized
    End If

    ' Assignation des objets
    Set myItem = OL.CreateItem(olMailItem)
    Set wDoc = myItem.GetInspector.WordEditor

    ' Création Email et envoi
    With myItem
        'Affichage signature
        .Display
        ' Destinataire(s) du mail
        .To = sDest
        ' Copie du mail
        .CC = sCopie
        ' Sujet de l'eMail
        .Subject = "Demande d'approvisionnement "
        ' Joindre le fichier précédemment créé
        .Attachments.Add spath & sNomFic        '.CC = "xx@xxx.fr"
        ' Corps du mail
        Set rng = wDoc.Content
        rng.InsertParagraphBefore
        rng.Move 4, -1
        rng.InsertAfter vbNewLine & "Bonjour," & vbNewLine & vbNewLine
        rng.InsertAfter vbNewLine & "Ceci est un exemple" & vbNewLine & vbNewLine
        ' Police du corps du mail
        With rng.Font
        End With
        ' Copie de la plage
        rng.InsertParagraphAfter
        rng.Move 4, 1
        Plage_à_envoyer.Copy
        rng.Paste
        rng.Move 4
        ' Envoi
        .Send
    End With
    ' désassignation des objets
    Set myItem = Nothing
    Set wDoc = Nothing
    Set OL = Nothing

End Sub

Bonjour Thev et merci

Désolé pour ma réponse aussi tardive, mais je m'étais lancé sur un autre projet en attendant

C'est parfait

Rechercher des sujets similaires à "creer mail plage inseree dedans"