VBA - envoyer un mail outlook via macro excel

Moe

XLDnaute Nouveau
Bonjour,

J'aimerais créer une macro afin d'envoyer une plage (A2:J82 de ma sheet "Daily Results") de cellule comme état le corps de mon e-mail. En titre à mon e-mail, je veux que ce soit le contenu de la cellule B2.

J'ai trouvé ce code:

Sub SendResults()
'
' SendResults Macro
' Send Results to AWH manager
'

Dim rng As Range
Dim OutApp As Object
Dim OutMail As Object

Set rng = Nothing
On Error Resume Next
Set rng = Sheets("Daily Results").Range("A2:J82").SpecialCells(xlCellTypeVisible)

On Error GoTo 0

If rng Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected. " & _
vbNewLine & "Please correct and try again.", vbOKOnly
Exit Sub
End If

With Application
.EnableEvents = False
.ScreenUpdating = False
End With

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

On Error Resume Next
With OutMail
.To = "test@outlook.com"
.CC = ""
.BCC = ""
.Subject = B1
.HTMLBody = Range("A2:J82")
.Send
End With
On Error GoTo 0

With Application
.EnableEvents = True
.ScreenUpdating = True
End With

Set OutMail = Nothing
Set OutApp = Nothing



End Sub

Ca m'envoie bien un e-mail via la macro mais:

1. Cet e-mail est vide
2. Cet e-mail n'a pas de titre

Est-ce que quelqu'un aurait une solution à mon problème? Je n'y connais pas grand chose en vba, peut-être ma requète n'est pas possible ou doit être execute autrement?


D'avance merci pour votre précieuse aide!
 

Staple1600

XLDnaute Barbatruc
Re : VBA - envoyer un mail outlook via macro excel

Bonsoir à tous

Moe
Fais ces modifications puis testes de nouveau ton code
Code:
.Subject = Sheets("Daily Results").Range("B1")
.HTMLBody = rng.Text
 

Moe

XLDnaute Nouveau
Re : VBA - envoyer un mail outlook via macro excel

Salut Staple1600,

On progresse, maintenant j'ai bien le texte ma cellule B1 qui s'affiche dans le titre de l'e-mail :p

Par contre pour le corps de l'e-mail, celui-ci est toujours vide.
Peux-être l'erreur vient-elle de la definition du rng en début de code?

A savoir que la plage de cellule qui doit être envoyée (A2:J82) contient du texte, des cellules vides et des tableaux...

Un grand merci pour ton aide...
 

Roland_M

XLDnaute Barbatruc
Re : VBA - envoyer un mail outlook via macro excel

bonjour,

salut Staple

j'ai pas outlook mais j'ai trouvé ce exemple, si ça peut t'aider !?


'Objet en B1
Objet = ActiveSheet.Range("B1").Value
'Texte : 5 lignes de B2 à B6
Texte = Join(Application.Transpose(ActiveSheet.Range("B2:B6").Value), vbLf)

et
.Body = Texte
 

Discussions similaires

Haut Bas