J'aimerais pouvoir envoyer des mails à partir d'une liste. J'ai récupéré des exemples sur le forum et j'ai essayé de les adapter à mes besoins.
Comme mes connaissances du VBA sont très très basiques, je n'y arrive pas.
Dans le fichier joint, je voudrais une commande pour envoyer un mail individuel pour une adresse à la fois à l'approche de la date du rendez-vous.
Actuellement, le mail créé est envoyé à tous les destinataires et ne reprend pas les données des colonnes A et C.
Par avance merci de vous pencher sur mon problème et surtout d'y apporter une solution.
Sub SendMailTo() ' 2015
Dim Mmail As String
Dim Sujet As String
Dim Zone As Range
Set Ws1 = Sheets("suivi")
Set Zone = Ws1.Range("B2:B" & Ws1.[B65000].End(xlUp).Row)
For Each C In Zone
Set OL = CreateObject("Outlook.Application")
Set MyItem = OL.CreateItem(olMailItem)
Mmail = C.Value
With MyItem
.To = Mmail
.Subject = "Rendez-vous"
.ReadReceiptRequested = False
.Body = "Rappel pour notre rendez-vous du " & C.Offset(, -1) & " au " & C.Offset(, 1)
.Send
End With
Next C
MsgBox "Mail envoyé", vbInformation, ""
J'ai recopié le code de gosselien mais après activation de la macro, j'obtiens le message d'erreur suivant: "Erreur système &H80004005 (-2147467259)".
D'autre part, si je comprends bien, cette commande envoie systématiquement un mail à toutes les adresses. J'aurais voulu un envoi individuel par exemple si la date du jour est la veille de la date mentionnée dans la colonne A.
J'aurais pu m'exprimer plus clairement dès le début. Toutes mes excuses.
Option Explicit
Sub EnvoiMail()
Dim OutApp As Object
Dim OutMail As Object
Dim Lig&
For Lig = 2 To Range("B" & ActiveSheet.Rows.Count).End(xlUp).Row
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = Range("B" & Lig).Text
'.CC = ""
'.BCC = ""
.Subject = "Rapppel RdV"
.Body = "Rappel pour notre rendez-vous du " & Sheets("Suivi").Range("A" & Lig) _
& " au " & Sheets("Suivi").Range("C" & Lig)
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
Next Lig
End Sub
Option Explicit
Sub EnvoiMail()
Dim OutApp As Object
Dim OutMail As Object
Dim Lig&
For Lig = 2 To Range("B" & ActiveSheet.Rows.Count).End(xlUp).Row
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = Range("B" & Lig).Text
'.CC = ""
'.BCC = ""
.Subject = "Rapppel RdV"
.Body = "Rappel pour notre rendez-vous du " & Sheets("Suivi").Range("A" & Lig) _
& " au " & Sheets("Suivi").Range("C" & Lig)
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
Next Lig
End Sub
J’ai une question portant sur le même sujet mais comportant des difficultés supplémentaires.
Actuellement je dispose d’un fichier sur lequel je fais des exports de mon logiciel professionnel.
Le fichier comporte des MFC, notamment sur des dates supérieures à 30 jours qui laissent apparaître une icône rouge.
Pour exemple le fichier joint
J’aimerais si possible que si cette icône est rouge et que si la colonne AF est vide qu’il y est un mail qui parte automatiquement aux personnes suivantes :
A : Colonne N
CC : valerie.giscard@nsp.fr (cet e-mail est fixe) + « Colonne C » + (si c’est possible que ca me demande si je souhaite rajouter une adresse mail)
Objet : Relance demande « Colonne D »
Dans le message :
Bonjour,
Cette demande est toujours en cours, peux tu me dire si elle a été traitée ou si tu es en attente d’une réponse du client ?
Merci d’avance
Je reste à ta disposition pour de plus amples informations.
Bien Cordialement,
Une fois que le mail est partit je souhaite que la colonne AF se remplisse avec la date d’envoi.
Si cet envoi automatique n’est pas possible est-il possible de créer un bouton le permettant ?
Pour info mon logiciel mail est Lotus Notes mais cela dit le mois prochain (enfin si dieu le veut bien ;-) ) nous passons sur Outlook.
Pour des raisons de confidentialités toutes les infos sont changées dans le tableau.
Et encore une fois je ne remercierais jamais assez celui qui prendra le temps de me répondre et je suis conscient que je demande quelque chose qui peut prendre du temps , je ne ferais aucun reproche si on me dit que c’est trop compliqué.
Option Explicit
Sub EnvoiMail()
Dim OutApp As Object
Dim OutMail As Object
Dim Lig&
For Lig = 2 To Feuil1.Range("B" & ActiveSheet.Rows.Count).End(xlUp).Row
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
If Feuil1.Range("AF" & Lig) = "" Then
With OutMail
.To = Feuil1.Range("N" & Lig).Text
.CC = "valerie.giscard@nsp.fr;jean.claude.vandame@nsp.fr"
'.BCC = ""
.Subject = "Relance demande " & Feuil1.Range("D" & Lig).Text
.Body = "Bonjour, " & vbCrLf & vbCrLf & "La demande " & Feuil1.Range("D" & Lig).Text & " est toujours en cours, peux tu me dire si elle a été traitée ou si tu es en attente d’une réponse du client ?" _
& vbCrLf & vbCrLf & "Merci d’avance" & vbCrLf & vbCrLf & "Je reste à ta disposition pour de plus amples informations." & vbCrLf & vbCrLf & "Bien Cordialement"
.Send
Feuil1.Range("AF" & Lig) = Date
End With
End If
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
Next Lig
End Sub
Option Explicit
Sub EnvoiMail()
Dim OutApp As Object
Dim OutMail As Object
Dim Lig&
For Lig = 2 To Feuil1.Range("B" & ActiveSheet.Rows.Count).End(xlUp).Row
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
If Feuil1.Range("AF" & Lig) = "" Then
With OutMail
.To = Feuil1.Range("N" & Lig).Text
.CC = "valerie.giscard@nsp.fr;jean.claude.vandame@nsp.fr"
'.BCC = ""
.Subject = "Relance demande " & Feuil1.Range("D" & Lig).Text
.Body = "Bonjour, " & vbCrLf & vbCrLf & "La demande " & Feuil1.Range("D" & Lig).Text & " est toujours en cours, peux tu me dire si elle a été traitée ou si tu es en attente d’une réponse du client ?" _
& vbCrLf & vbCrLf & "Merci d’avance" & vbCrLf & vbCrLf & "Je reste à ta disposition pour de plus amples informations." & vbCrLf & vbCrLf & "Bien Cordialement"
.Send
Feuil1.Range("AF" & Lig) = Date
End With
End If
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
Next Lig
End Sub
Cette macro ne fonctionne pas sur mon mac pourtant j'ai Outlook.
Je vais l'essayer demain au travail... Comment puis je adapter la macro à l'application Lotus ?
Et encore une fois merci pour votre réponse ultra rapide !
Le code que tu m'as proposé ne fonctionne pas, j'ai toujours le même message d'erreur mais ce n'est pas grave car j'ai récupéré celui que tu as concocté pour entoanne et il fonctionne sans problème.
J'ai suivi son idée de MFC et je souhaiterais savoir s'il est possible de n'envoyer un mail que si l'icône est rouge.
Autre idée, comme il s'agit de dates, peut-on mettre une condition à l'envoi en fonction de la date du jour? Le mail ne serait envoyé que si la date en A est par exemple 2 jours plus tard pour rappeler le rendez-vous.
Cette macro ne fonctionne pas sur mon mac pourtant j'ai Outlook.
Je vais l'essayer demain au travail... Comment puis je adapter la macro à l'application Lotus ?
Et encore une fois merci pour votre réponse ultra rapide !