Salut
Tu m'a demandé en MP mais je préfère te repondre ici, comme sa tout le monde peut le voir (pour en profiter ou pour le corriger)
Il suffit de reprendre le code de Issoram
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| Sub EnvoiMail(Adresse As String, objet As String, Corps As String, Optional Piece As Variant, Optional cc As Variant, Optional Bcc As Variant)
Dim MonAppliOutlook As New Outlook.Application
Dim MonMail As Outlook.MailItem
Set MonMail = MonAppliOutlook.CreateItem(olMailItem)
With MonMail
'.Display ' retirer le commentaire pour que la fenêtre Outlook s'affiche
.To = Adresse
If Not IsMissing(cc) Then .cc = CStr(cc)
If Not IsMissing(Bcc) Then .Bcc = CStr(Bcc)
.Subject = objet
.Body = Corps
If Not IsMissing(Piece) Then
.Attachments.Add CStr(Piece), olByValue
End If
End With
MonMail.Send
Set MonAppliOutlook = Nothing
Set MonMail = Nothing
End Sub |
Le .To correspond à l'adresse chez qui tu veux l'envoyé. Donc tu rajoute vers le début du code une variable que tu appelles Adresse, ou alors tu remplaces Adresse par une vrai adresse mail.
.To = "collegue-travail@entreprise.job"
Le .Subjet correspond au titre de ton mail et comme pour l'Adresse, soit tu fait une varaible String que tu appelles objet (pour coller avec le code de issoram) ou alors tu met ton titre directement. On va également faire le body, c'est à dire, ce qu'il va y avoir dans le msg
1 2
| .Subject = "Fichier Excel Modifié"
.Body = "Bonjour, ceci est un mail automatique, veuillez ne pas y répondre. Le fichier (et la tu peux mettre le nom du fichier pour faire cool avec une concaténation) " & ThisWorkbook.Name & " a été sauvegardé." |
Ensuite, pour les cas spécifique tu peux mettre des personnes en copie ou copie cachée grâce à :
1 2
| If Not IsMissing(cc) Then .cc = CStr(cc)
If Not IsMissing(Bcc) Then .Bcc = CStr(Bcc) |
Tu peux également mettre une pièce jointe :
1 2 3
| If Not IsMissing(Piece) Then
.Attachments.Add CStr(Piece), olByValue
End If |
Il ne faut pas oublier non plus la dernière ligne qui envoie le mail.
Il me semble que tu peux utiliser le .From pour indiquer ton addresse mais je ne suis pas sur.
Ensuite si tu utilises XL10, tu epux utiliser la fonction AfterSave, sinon si tu est sur un vieux 2007 comme le vieux fring
utilises plutôt BeforeClose.
Il faut écrire ce code dans le module ThisWorkbook :
1 2 3
| Private Sub Workbook_AfterSave(Cancel As Boolean)
'comme je te l'ai expliqué précedemment, soit tu utilises les varaible dans ce cas tu les mets ici, soit tu mets les noms directements, dans ce cas utulise juste EnvoieMail() et tu soit également redéfinir la signature dans ta fonction.
Call EnvoiMail(Adresse, objet, Corps,Piece,cc, Bcc ) |
Après, je ne suis pas allé voir l'excellent tuto de silkyroad, qui doit beaucoup mieux l'expliquer que moi mais comem tu as pris le temps de m'envoyer un MP, j'ai pris le temps de te repondre.
Partager