Envoyer un mail via Excel -VBA
Bonjour à tous,
J’aurai besoin d’aide pour l’ajustement d’une macro. J’utilise cette macro qui fonctionne très bien pour envoyer un fichier excel via outlook. Mon souci c’est que j’aimerais avoir un titre ou plutôt un objet dans mon mail. Ma macro me met un objet par défaut lors de l’envoi « classeur 1 ».
Pourriez-vous m’aider à remédier à ce problème en insérant une ligne objet?
Sub envoyer_Click()
ActiveSheet.Copy
ActiveWorkbook.SendMail Recipients:="adresse@gmail.com "
ActiveWorkbook.Close savechanges:=False
MsgBox ("Mon message")
End Sub
Merci par avance.
Un jour j'avais créé ça en suivant un bouquin (fichier excel vers messagerie outloock)
Sub E_Mail_Sur_Clic(control As IRibbonControl)
'Cette routine permet d'envoyer le "Bilan_Portefeuille" par mail avec le fichier
'suivant une liste dans feuille "Destinataires".
'Attention : Cette routine ne fonctionne que sous Excel 2013, pas sur Excel 2003
'Elle ne pourra être activée que sous Excel 2013 et +
'Pour cela, il faudra "rendre Excel communiquant", dans environnement VBA
'Sélectionner Outils/Références puis cocher :
' - Microsoft Outlook 15.0 Object Library
' - Microsoft Outlook Social Provider Extensibility
' voir détails livre VBA pour Excel 2010 page 395
'Déclaration Mon_Outlook en tant oject Outlook de type application --- démarrage Outlook
Dim Mon_Outlook As New Outlook.Application
'Déclaration Mon_Message en tant que objet Outlook de type MailItem (message électronique)
Dim Mon_Message As Outlook.MailItem
'Déclaration Liste_Dest en tant que feuille de calcul
Dim Liste_Dest As Worksheet
'Figer l'écran.
Application.ScreenUpdating = False
'Sélection sur feuille "TBSheet"
Sheets("TBSheet").Activate
'Fait référence à la feuille "TBSheet"
Set Liste_Dest = ThisWorkbook.Worksheets("TBSheet")
'Création d'un nouveau message
Set Mon_Message = Mon_Outlook.CreateItem(olMailItem)
With Mon_Message
'Objet du message
.Subject = "Bilan Portefeuille"
'Corps du message
.Body = "Vous trouverez ci-joint le Bilan portefeuille du jour." _
& vbCrLf & "Cordialement." & vbCrLf & vbCrLf _
& "Patrick XXXXXXX"
'Format du message
.BodyFormat = olFormatHTML
'Chargement des destinataires du mail
'Nom dans cellule "K2"
Liste_Dest.Range("K2").Select
Do While ActiveCell.Value() <> ""
'Ajout d'un nouveau destinataire au message
'son nom dans cellule active
.Recipients.Add (ActiveCell.Value)
'cellule suivante pour test (si plusieurs destinataires)
ActiveCell.Offset(1, 0).Select
Loop
'Permet d'ajouter une nouvelle piéce jointe au message
.Attachments.Add ThisWorkbook.Path & "\" & ThisWorkbook.Name
'Envoi du message
.Send
End With
'Fermeture de l'application Outlook
Mon_Outlook.Quit
'Libération espace mémoire
Set Mon_Outlook = Nothing
Set Mon_Message = Nothing
Set List_Dest = Nothing
'Retour sur feuille "Destinataires"
Sheets("Bilan_Actions").Activate
'Libére l'écran.
Application.ScreenUpdating = True
End Sub
Bonjour,
Sub envoyer_Click()
ActiveSheet.Copy
ActiveWorkbook.SaveAs Name
ActiveWorkbook.SendMail Recipients:="adresse@gmail.com " 'Range("a1").Value
Application.DisplayAlerts = False
' Ferme le classeur créé après l'envoi
ActiveWorkbook.Close
Application.DisplayAlerts = TrueLe hic c'est qu'un message d'alerte Outlook apparaît avant envoi du mail donc si tu veux voir le message mettre une cellule vide dans le code à la place de "adresse@gmail.com" (exemple ici A1) et tu devras rentrer l'adresse mail ou alors lorsque le message d'errer apparaît répondre "OUI3 (je n'ai toujours pas trouvé pour éviter que ce message apparait, le displayalert ne fonctionne pas)