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 :



Voir la vidéo

Comment envoyer des mails avec plusieurs pièces jointes




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)


📌↪️ Premier code VBA à utiliser pour l'envoi de 2 pièces  jointes :


(✍️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 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.





Posts les plus consultés de ce blog

Suivi des stocks et inventaire avec alerte

Cases à cocher interactives sur Excel

Listes déroulantes multi-sélections