Envoi mail automatique avec selection cellules et corps de texte
Bonjour à toutes et à tous,
En cette nouvelle année que je vous souhaites la plus agréable possible, je cherche à envoyer automatique un mail au travers d'Excel. Ce mail comporte une partie en texte figée et une partie où je souhaite copier/coller les cellules que j'ai sélectionnées dans mon tableau. J'ai réussi à faire ces 2 fonctions dans 2 macros séparées (en m'inspirant largement de ce forum !). Mais impossible de trouver comment avoir une seule macro
Sub Envoimail()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim OutApp, OutMail As Object
Dim strbody, Destinataire As String
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
strbody = "<HTML> Mon message bla bla bla qui ne change jamais</HTML>"
On Error Resume Next
With OutMail
.Display
.To = "mes destinataires"
.Subject = "sujet de mon mail"
.HTMLBody = strbody & .HTMLBody
End With
Application.DisplayAlerts = True
On Error GoTo 0
'on vide les variables objet
Set OutMail = Nothing
Set OutApp = Nothing
End SubEt le code que j'ai trouvé pour copier et coller les cellules que j'ai sélectionné (et que je n'arrive pas à intégrer ...)
Selection.Copy
oObjetWord.Range(0).PasteD'avance merci pour votre aide !
Bonjour Youg et
Avez-vous essayer de faire une recherche sur Internet avant
https://www.google.com/search?q=vba+envoyer+selection+par+mail
Vous trouvez un tas de résultats sur le sujet
A+
Bonjour BrunoM45,
Cela a bien été mon premier réflexe. Généralement j'arrive toujours à trouver en fouillant quelques heures. Dans le cas présent, je sais faire séparément les 2 actions que je souhaite obtenir mais aucunes des solutions ne me permet d'avoir et du corps de texte et la sélection des cellules dans un unique mail.
J'ose à croire qu'il doit y avoir une commande toute simple pour fusionner ces 2 codes mais j'ai beau chercher je ne trouve pas. D'où ma demande d'assistance de la communauté
Re,
Le problème est que vous voulez utiliser "oObjetWord" qui n'est pas définit
Vous pouvez essayer (sans conviction)
Sub Envoimail()
Dim OutApp, OutMail As Object
Dim strbody, Destinataire As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' Copier les cellules
Selection.Copy
' Création des instances
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
'
strbody = "<HTML> Mon message bla bla bla qui ne change jamais</HTML>"
With OutMail
.Display
.To = "mes destinataires"
.Subject = "sujet de mon mail"
.HTMLBody = strbody & .HTMLBody
oObjetWord.Range(0).Paste
End With
' on vide les variables objet
Set OutMail = Nothing
Set OutApp = Nothing
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End SubA+
Effectivement, en voulant mettre qu'une partie de ma macro je n'ai pas repris "oObjetWord" ... désolé. En voulant faire simple je n'ai pas communiquer l'ensemble des informations. Voici la macro que j'ai dans son intégralité (j'ai supprimé de nombreuses lignes de code qui ne m'apportaient rien...)
Sub test10()
Dim oOutlook As Object
Set oOutlook = CreateObject("Outlook.Application")
Dim oMail As Object
Set oMail = oOutlook.CreateItem(0)
With oMail
Dim oObjetWord As Object
Set oObjetWord = .GetInspector.WordEditor
.To = "Correspondants Prescriptif UTO"
.Subject = "Titre du mail"
strbody = "<HTML> Mon message bla bla bla qui ne change jamais</HTML>"
.HTMLBody = strbody & .HTMLBody
Selection.Copy
oObjetWord.Range(0).Paste
.Display
End With
End SubA cause du code "Selection.Copy oObjetWord.Range(0).Paste" je n''obtiens plus "Mon message blabla" avec ma signature de mail habituelle. J'essaie donc de trouver le lien logique manquant pour que "strbody" coexiste avec "Selection.Copy"