envoi mail avec objet et texte

sri75

XLDnaute Occasionnel
Bonjour, sur le forum j'ai récupéré cette super macro

ActiveSheet.Copy ' créée une copie de la feuille active
ActiveWorkbook.SendMail Recipients:=test@free.fr 'envoi Mail
Application.DisplayAlerts = False
ActiveWorkbook.Close ' supprime le classeur créé après l'envoi
Application.DisplayAlerts = True

Qui permet d'envoyer une feuille active par mail via Outlook sur l'adresse test@free.fr

la macro créée un classeur temporaire l'envoie puis le détruit.

Actuellement l'objet est le nom du classeur créé ( ex classeur2.xls ) et il n'y a pas de texte de message; ce qui n'est pas très parlant pour le destinataire du mail.

Est il possible de rajouter un texte de son choix dans l'objet que l'on pourrais concatener ou non avec classeur.xls ?

Meme question pour le message.


Merci d'avance à tous pour votre aide ou vos idées.

Stephane
 

Yaloo

XLDnaute Barbatruc
Re : envoi mail avec objet et texte

Bonjour Stéphane,

Avec ceci, peut-être :
VB:
ActiveSheet.Copy ' créée une copie de la feuille active
 ActiveWorkbook.SendMail "test@free.fr", "Objet Texte" 'envoi Mail
 Application.DisplayAlerts = False
 ActiveWorkbook.Close ' supprime le classeur créé après l'envoi
 Application.DisplayAlerts = True

A te relire

Martial
 

sri75

XLDnaute Occasionnel
Re : envoi mail avec objet et texte

Bonjour,

pour l'objet j'ai réussi à modifier le nom du fichier comme ceci, étant donné que l'objet est le nom du fichier.

ActiveSheet.Copy

ActiveWorkbook.SaveAs Filename:="Liste de mes clients.xls"

ActiveWorkbook.SendMail Recipients:=admail 'envoi Mail
Application.DisplayAlerts = False
ActiveWorkbook.Close ' supprime le classeur créé après l'envoi
Application.DisplayAlerts = True

Par contre je bloque sur le texte du message, car dans les exemples des discussions il s'agit de macros très différentes et dans la mienne le .body ne fonctionne pas !

Merci de me faire part de vos idées et bonne journée

Stephane
 

sri75

XLDnaute Occasionnel
Re : envoi mail avec objet et texte

Martial,

merci pour la macro j'avais loupé l'objet texte, effectivement c'est parfait.

par contre je bloque pour la partie message du mail du type "Veuillez trouver ci-joint.."

Si tu as une autre super astuce je suis preneur !
 

sri75

XLDnaute Occasionnel
Re : envoi mail avec objet et texte

j'ai trouvé une variante, mais le classeur actif ne part pas en pièce jointe !

la solution doit être dans le currfile mais je bloque !

Sub Mail_avis_essai_court()

'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"

Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String

Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = Range("u30").Value
.Subject = Range("a10").Value
.Body = "Contenu " & Range("a2").Value
'.Display
.Send
'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display)
End With
End Sub
 

sri75

XLDnaute Occasionnel
Re : envoi mail avec objet et texte

Voila la solution

je recupere le nom de la feuille excel et l'adresse mail dans une variable, ensuite la macro extrait la feuille dans un fichier excel au nom aléatoire classeur....xls que je renomme ensuite la macro envoie les mails au kilomètre.

Dans mon cas il y a une boucle car j'ai 700 mails a envoyer.

Merci à tous pour votre aide toujours précieuse.

Sub Mail_avis_essai_court()

'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"

Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String


Sheets("cab").Select

Range("o2").Select

admail = ActiveCell.Value




Range("a2").Select

numcab2 = ActiveCell.Value


debut:
'admail = ActiveCell.Value


If numcab2 = "" Then Exit Sub


Sheets(numcab2).Select



ActiveSheet.Copy
Application.DisplayAlerts = False

ActiveWorkbook.SaveAs Filename:="Liste de nos adherents.xls"



Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = admail
.Subject = "liste de nos adhérents gérés par votre cabinet"



.Attachments.Add "Liste de nos adherents.xls"




'.Attachments.Add ActiveWorkbook
.Body = "Madame, Monsieur, Nous vous remercions par avance pour votre collaboration."

'.Display '
.Send
'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display)
End With

Application.DisplayAlerts = False
ActiveWorkbook.Close ' supprime le classeur créé après l'envoi

Sheets("cab").Select

ActiveCell.Offset(1, 0).Select
numcab2 = ActiveCell.Value

admail = ActiveCell.Offset(0, 14).Value

GoTo debut


End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 065
Membres
103 451
dernier inscrit
Souleymane