Envoyer des mails depuis EXCEL
Comment envoyer des mails avec des messages et des objets personnalisés sur EXCEL ?
Dans ce tutoriel, vous alles découvrir comment envoyer des mails à partir d'Excel, avec plusieurs pièces jointes mais aussi avec des messages et des objets personnalisé, en utilisant Visual Basic ou VBA (voir ci-dessous).
✅ Des astuces bien utiles, avec la possibilité également d'indiquer des destinataires en copie cachée.
De plus, une fois que vos messages sont envoyés, vous avez une confirmation qui s'affiche dans une boîte de dialogue, mais aussi dans une cellule pour chaque destinataire.
👍 Et vous retrouvez bien sûr une copie de vos messages envoyés dans votre boîte mail Outlook.
Pour vous entraîner :
-> Télécharger le fichier EXCEL de la vidéo
Voir la vidéo
Selon vos besoins, soit vous utilisez :
- le premier code VBA pour envoyer 2 pièces jointes
- ou le deuxième code VBA (en-dessous) pour envoyer 3 pièces jointes (en sachant que ce deuxième code fonctionne même si vous n'avez que 2 pièces jointes à envoyer)
(✍️n'oubliez pas de noter les en-têtes de colonnes comme expliqué dans la vidéo, sinon, pensez à modifier le code VBA)
Sub Envoi_mails()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Envoi mails")
Dim i As Integer
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Envoi mails")
Dim i As Integer
Dim OA As Object
Dim msg As Object
Set OA = CreateObject("outlook.application")
Dim last_row As Integer
last_row = Application.CountA(sh.Range("A:A"))
For i = 2 To last_row
If sh.Range("H" & i).Value <> "NON" Then
Set msg = OA.CreateItem(0)
msg.To = sh.Range("A" & i).Value
msg.CC = sh.Range("B" & i).Value
msg.BCC = sh.Range("C" & i).Value
msg.Subject = sh.Range("D" & i).Value
msg.Body = sh.Range("E" & i).Value
If sh.Range("F" & i).Value <> "" Then
msg.Attachments.Add sh.Range("F" & i).Value
End If
If sh.Range("G" & i).Value <> "" Then
msg.Attachments.Add sh.Range("G" & i).Value
End If
msg.Send
sh.Range("I" & i).Value = "Envoyé"
End If
Next i
MsgBox "Messages Envoyés"
End Sub
Sub EffacerD()
Range("D2:D100").ClearContents
End Sub
Sub EffacerE()
Range("E2:E100").ClearContents
End Sub
Sub EffacerF()
Range("F2:F100").ClearContents
End Sub
Sub EffacerG()
Range("G2:G100").ClearContents
End Sub
Sub EffacerH()
Range("H2:H100").ClearContents
End Sub
Sub EffacerI()
Range("I2:I100").ClearContents
End Sub
Sub Fichier()
Dim file_path As String
file_path = Application.GetOpenFilename(MultiSelect:=False)
If file_path <> "False" Then
Selection.Value = file_path
End If
End Sub
📌↪️ Deuxième code VBA à utiliser pour l'envoi de 3 pièces jointes
(en n'oubliant pas d'ajouter une colonne, comme expliqué dans la vidéo)
Sub Envoi_mails()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Envoi mails")
Dim i As Integer
Dim OA As Object
Dim msg As Object
Set OA = CreateObject("outlook.application")
Dim last_row As Integer
last_row = Application.CountA(sh.Range("A:A"))
For i = 2 To last_row
If sh.Range("I" & i).Value <> "NON" Then
Set msg = OA.CreateItem(0)
msg.To = sh.Range("A" & i).Value
msg.CC = sh.Range("B" & i).Value
msg.BCC = sh.Range("C" & i).Value
msg.Subject = sh.Range("D" & i).Value
msg.Body = sh.Range("E" & i).Value
If sh.Range("F" & i).Value <> "" Then
msg.Attachments.Add sh.Range("F" & i).Value
End If
If sh.Range("G" & i).Value <> "" Then
msg.Attachments.Add sh.Range("G" & i).Value
End If
If sh.Range("H" & i).Value <> "" Then
msg.Attachments.Add sh.Range("H" & i).Value
End If
msg.Send
sh.Range("J" & i).Value = "Envoyé"
End If
Next i
MsgBox "Messages Envoyés"
End Sub
Sub EffacerD()
Range("D2:D100").ClearContents
End Sub
Sub EffacerE()
Range("E2:E100").ClearContents
End Sub
Sub EffacerF()
Range("F2:F100").ClearContents
End Sub
Sub EffacerG()
Range("G2:G100").ClearContents
End Sub
Sub EffacerH()
Range("H2:H100").ClearContents
End Sub
Sub EffacerI()
Range("I2:I100").ClearContents
End Sub
Sub EffacerJ()
Range("J2:J100").ClearContents
End Sub
Sub Fichier()
Dim file_path As String
file_path = Application.GetOpenFilename(MultiSelect:=False)
If file_path <> "False" Then
Selection.Value = file_path
End If
End Sub
Un autre tutoriel qui pourrait vous intéresser
✅ Ainsi, lorsque vous imprimez vos feuilles Excel, ou que vous enregistrez votre fichier au format PDF, ce texte en filigrane apparait sur toutes vos feuilles.