Bonjour,
j'ai créé une macro sur excel qui me permet d envoyer des emails via outlook. Le probleme est que cela requiert que OUTLOOK soit ouvert. S il ne l'est pas, rien ne se passe (meme pas sauvegardé jusqu a ouverture pour envoie).
J'ai vu également la méthode d'envoie d email directement par le serveur mais cela ne me convient pas car je perds trace de ce qui a été envoyé.
est t il possible de lancer l ouverture d outlook afin que les messages soient envoyés sans avoir à l ouvrir manuellement ?
voici mon code existant.
merci pour le coup de main
j'ai créé une macro sur excel qui me permet d envoyer des emails via outlook. Le probleme est que cela requiert que OUTLOOK soit ouvert. S il ne l'est pas, rien ne se passe (meme pas sauvegardé jusqu a ouverture pour envoie).
J'ai vu également la méthode d'envoie d email directement par le serveur mais cela ne me convient pas car je perds trace de ce qui a été envoyé.
est t il possible de lancer l ouverture d outlook afin que les messages soient envoyés sans avoir à l ouvrir manuellement ?
voici mon code existant.
merci pour le coup de main
Code:
' obligatoire pour récuperer la signature outlook dans l'email
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
' procedure pour envoyer le mail
Public Sub EnvoiAutomatiqueMail()
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim EMail As String
Dim strbody As String
Dim SigString As String
Dim Signature As String
y = Range("h" & Rows.Count).End(xlUp).Row
For i = 2 To y
genre = Range("a" & i)
nom = Range("b" & i)
restaurant = Range("d" & i)
heure = Range("e" & i)
jour = Range("f" & i)
couverts = Range("g" & i)
EMail = Range("h" & i)
' definition du corps du mail "strbody" (sans la signature outlook)
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
strbody = genre & " " & nom & ",<BR><BR>" & _
"comme indiqué par téléphone, je vous confirme votre réservation au restaurant " & _
"<B>" & restaurant & "</B>" & " le " & "<B>" & Format(jour, "dddd dd MMMM YYYY") & "</B>" & _
" à " & "<B>" & Format(heure, "HH:MM") & "</B>" & " pour " & "<B>" & couverts & " personnes." & "</B><BR><BR>" & _
"Cordialement,<BR><BR>Le service réservation"
' recupere la signature outlook, definis à qui envoyer, l'objet et ajoute la signature outlook au corps du mail "strbody"
SigString = Environ("appdata") & _
"\Microsoft\Signatures\mysign.htm"
If Dir(SigString) <> "" Then
Signature = GetBoiler(SigString)
Else
Signature = ""
End If
On Error Resume Next
OutlookMail.Open
With OutlookMail
.Subject = "Réservation: " & Format(jour, "dddd dd/mm/yy") & " à " & _
Format(heure, "hh:mm") & " - " & couverts & " pers. " & " restaurant " & restaurant & "
.To = EMail
.HTMLBody = strbody & "<br><br>" & Signature
OutlookMail.Send
End With
'recommence la procedure pour la réservation suivante
Next i
End Sub