envoi e-mail par macro VBA, corps du massage

C@thy

XLDnaute Barbatruc
Bonjour le forum,

comment puis-je rajouter un texte dans le corps du message dans la macro ci-dessous :

Code:
Sub testenvoi()
Workbooks("UnClasseur").SendMail Recipients:="xxx.xxx@xxx.fr", _
Subject:="Test envoi classeur", _
Body:="Bonjour, blabla blabla" PAS BON!!! TextBody:="Bonjour, blabla blabla", _ 'PAS BON!!! 
ReturnReceipt:=True
End Sub
Un grand Merci à vous:).

Bizz

C@thy
 

Pierrot93

XLDnaute Barbatruc
Re : envoi e-mail par macro VBA, corps du massage

Bonjour Cathy,

sous excel 2003, pas d'argument " Body" pour la m"thode "sendmail"... tu ne peux donc pas avec cette methode... après c'est fonction de la messagerie que tu utilises...
bon après midi
@+
 

C@thy

XLDnaute Barbatruc
Re : envoi e-mail par macro VBA, corps du massage

Merci Pierrot93,

je commençais à m'en douter car je ne trouvais pas cette propriété... je pouvais chercher!!!

j'utilise outlook,

j'envoie chaque feuille de mon classeur à l'adresse mail qui figure en A1 de chaque feuille, de la feuille 3 à le dernière -2

Sub Envoi()
Dim i As Integer
For i = 3 To Sheets.Count - 2
Sheets(i).Copy
ActiveWorkbook.SendMail Recipients:=[A1], Body:="blablabla blablabla"
ActiveWorkbook.Close False
Next
End Sub

Donc, si je te comprends bien, je dois m'y prendre autrement...:(

tu as une idée???

Merci à toi
 

Pierrot93

XLDnaute Barbatruc
Re : envoi e-mail par macro VBA, corps du massage

Re,

regarde peut être ceci :
Code:
Option Explicit
Private Sub test()
Dim appOutlook As Outlook.Application, message As Outlook.MailItem
Dim email As String, MaPJ As Attachments

Set appOutlook = CreateObject("outlook.application")
Set message = appOutlook.CreateItem(olMailItem)
email = "adresse.mail@xld.com" 'destinataire
Set MaPJ = message.Attachments
MaPJ.Add ThisWorkbook.FullName
With message
    .Subject = "Sujet du message"
    .Body = "Bonjour," & vbCr & vbCr & _
    "Bla Bla Bla ....... " & vbCr & vbCr & _
    "Cordialement," & vbCr & vbCr & _
    "Signature."
    .Recipients.Add (email)
    .Send
End With
End Sub

@+
 

C@thy

XLDnaute Barbatruc
Re : envoi e-mail par macro VBA, corps du massage

Code:
Voici ce que ça donne :

Private Sub test()
Dim appOutlook As Outlook.Application, message As Outlook.MailItem
Dim email As String, MaPJ As Attachments
Set appOutlook = CreateObject("outlook.application")
Set message = appOutlook.CreateItem(olMailItem)
Dim i As Integer
For i = 3 To Sheets.Count - 2
email = Sheets(i).[A1] 'destinataire
Set MaPJ = message.Attachments 'ici ça bugue au 2ème passage dans le boucle
MaPJ.Add ThisWorkbook.FullName
With message
.Subject = "Sujet du message"
.Body = "Bonjour," & vbCr & vbCr & _
"Bla Bla Bla ....... " & vbCr & vbCr & _
"Cordialement," & vbCr & vbCr & _
"Signature."
.Recipients.Add (email)
.Send
End With
Next i
End Sub

En plus ça m'envoie le classeur complet, pas la feuille:(

Bizz

C@thy
 

Pierrot93

XLDnaute Barbatruc
Re : envoi e-mail par macro VBA, corps du massage

Re,

modifie comme suit :
Code:
For i = 3 To Sheets.Count - 2
Email = Sheets(i).[A1] 'destinataire
Set MaPJ = Message.Attachments 'ici ça bugue au 2ème passage dans le boucle
MaPJ.Add ThisWorkbook.FullName
With Message
.Subject = "Sujet du message"
.Body = "Bonjour," & vbCr & vbCr & _
"Bla Bla Bla ....... " & vbCr & vbCr & _
"Cordialement," & vbCr & vbCr & _
"Signature."
.Recipients.Add (Email)
.Send
End With
Set MaPJ = Nothing
Next i

En plus ça m'envoie le classeur complet, pas la feuille
oui cela envoie un fichier qui est enregistré sur le DD, soit tout le classeur....
 

C@thy

XLDnaute Barbatruc
Re : envoi e-mail par macro VBA, corps du massage

Arf!

Je vais reformuler ma question :

y a-t-il un moyen d'envoyer chaque feuille du classeur une par une à un destinataire différent à chaque fois, et dont l'adresse mail figure en A1 de chaque feuille,
avec un corps de message ???
c'est à dire sans passer par sendmail puisqu'on ne peut pas mettre un corps de message
???

Merci

Bises

C@thy
 

Pierrot93

XLDnaute Barbatruc
Re : envoi e-mail par macro VBA, corps du massage

Re,

essaye ceci, non testé...
Code:
Option Explicit
Private Sub test()
Dim appOutlook As Outlook.Application, message As Outlook.MailItem
Dim email As String, MaPJ As Attachments, wb As Workbook, t As String
Set appOutlook = CreateObject("outlook.application")
Set message = appOutlook.CreateItem(olMailItem)
Dim i As Integer
    For i = 3 To Sheets.Count - 2
    Sheets(i).Copy
    Set wb = ActiveWorkbook
    With wb
        .SaveAs ThisWorkbook.Path & "\copie.xls"
        t = .FullName
        .Close
    End With
    email = Sheets(i).[A1] 'destinataire
    Set MaPJ = message.Attachments 'ici ça bugue au 2ème passage dans le boucle
    MaPJ.Add t
    With message
        .Subject = "Sujet du message"
        .Body = "Bonjour," & vbCr & vbCr & _
        "Bla Bla Bla ....... " & vbCr & vbCr & _
        "Cordialement," & vbCr & vbCr & _
        "Signature."
        .Recipients.Add (email)
        .Send
    End With
    Set MaPJ = Nothing
    Kill t
Next i
End Sub
 

C@thy

XLDnaute Barbatruc
Re : envoi e-mail par macro VBA, corps du massage

marche très bien pour la 1ère feuille
HTML:
Private Sub test()
Dim appOutlook As Outlook.Application, message As Outlook.MailItem
Dim email As String, MaPJ As Attachments
Dim i As Integer
Dim fname As String
Set appOutlook = CreateObject("outlook.application")
Set message = appOutlook.CreateItem(olMailItem)

For i = 3 To Sheets.Count - 2
    fname = Sheets(i).Name
    email = Sheets(i).[A1] 'destinataire
  
   Sheets(i).Copy
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & fname

   Set MaPJ = message.Attachments 'ici ça bugue au 2ème passage
   MaPJ.Add ActiveWorkbook.FullName
   With message
    .Subject = "Sujet du message"
    .Body = "Bonjour," & vbCr & vbCr & _
    "Bla Bla Bla ....... " & vbCr & vbCr & _
    "Cordialement," & vbCr & vbCr & _
    "Signature."
    .Recipients.Add (email)
    .Send
   End With
'Set MaPJ = Nothing
ActiveWorkbook.Close
Next i
End Sub
 

Discussions similaires

Réponses
6
Affichages
340

Statistiques des forums

Discussions
312 398
Messages
2 088 076
Membres
103 700
dernier inscrit
amin Saadaoui