Option Explicit
Sub EnvoiAutomatiqueMail()
Dim OutlookApp As Object, OutlookMail As Object
Dim SigString$, Signature$, MaSignature$
Dim Exped$, strbody$, i&
'Si Outlook n'est pas ouvert
If OutlookOuvert = False Then i = Shell("Outlook", vbNormalNoFocus)
'Suivant les lignes de ton tableau
For i = 2 To [A65536].End(3).Row
'Choix du vendeur et de son adresse mail
Select Case Cells(i, 2)
Case "clark": Exped = "clark.zzzz@orange.fr"
Case "Bruce": Exped = "Bruce.xxxx@orange.fr"
Case "Oliver": Exped = "Oliver.yyyy@orange.fr"
End Select
' recupere la signature outlook, definis à qui envoyer, l'objet et ajoute la signature outlook au corps du mail "strbody"
MaSignature = Cells(i, 2) & ".htm"
'Normalement l'emplacement est dans AppData\Microsoft\Signatures\
SigString = Environ("appdata") & "\Microsoft\Signatures\" & MaSignature
'Vérification de la présence de la signature dans le répertoire
If Dir(SigString) <> "" Then
Signature = GetBoiler(SigString)
Else
Signature = ""
End If
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
strbody = "Bonjour " & Cells(i, 1) & ",<BR>" & _
"Merci de faire affaire avec nous,<BR><BR>" & Chr(13) & _
"Cette année vous avez acheté pour " & Cells(i, 3) & "<BR>" & _
"Merci,<BR><BR>" & Cells(i, 2) & "<BR>" & Signature
On Error Resume Next
With OutlookMail
'Choisir l'adresse d'envoi
.SentOnBehalfOfName = Exped
.Subject = "CA"
.To = Cells(i, 4)
.HTMLBody = strbody
.Display 'pour voir
'.Send 'pour envoyer
End With
'recommence la procedure pour la ligne suivante
Next i
End Sub
Function OutlookOuvert() As Boolean
Dim oOL As Object
On Error Resume Next
Set oOL = GetObject(, "Outlook.Application")
On Error GoTo 0
OutlookOuvert = Not (oOL Is Nothing)
Set oOL = Nothing
End Function
Function GetBoiler(ByVal sFile As String) As String
'Dick Kusleika
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.readall
ts.Close
End Function