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)
Et voici ce que j'aimerais obtenir
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 WithSi 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+
thevPassionné d'Excel
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
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 SubBonjour 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