Envoi Email

pir312

XLDnaute Nouveau
Bonjour à tous,

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.
 

Pièces jointes

  • Outlook MAIL.xlsm
    21.8 KB · Affichages: 25

gosselien

XLDnaute Barbatruc
Re : Envoi Email

Bonjour,

un maitre en la matière ici:

Mail one Sheet With SendMail

P. (XL2007-PC)


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, ""
 
Dernière édition:

pir312

XLDnaute Nouveau
Re : Envoi Email

Re Bonjour,

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.

J'attends avec impatience vos propositions.
 

JCGL

XLDnaute Barbatruc
Re : Envoi Email

Bonjour à tous,

As-tu pensé à activer la Référence par Outils / Références dans l'éditeur VBE ?

Capture 1.png

A+ à tous
 

Pièces jointes

  • Capture 1.png
    Capture 1.png
    9 KB · Affichages: 72
  • Capture 1.png
    Capture 1.png
    9 KB · Affichages: 68

JCGL

XLDnaute Barbatruc
Re : Envoi Email

Bonjour à tous,

Peux-tu essayer :

VB:
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

A+ à tous
 

entoanne

XLDnaute Nouveau
Re : Envoi Email

Bonjour à tous,

Peux-tu essayer :

VB:
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

A+ à tous

Bonsoir,

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é.

Bien à vous,
Antoine
 

Pièces jointes

  • Suivi demandes.xls
    40 KB · Affichages: 36
  • Suivi demandes.xls
    40 KB · Affichages: 32
  • Suivi demandes.xls
    40 KB · Affichages: 26

JCGL

XLDnaute Barbatruc
Re : Envoi Email

Bonjour à tous,

Pourras-tu essayer :

VB:
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

Résultat sous MSOutlook :

Capture 3.png

A+ à tous
 

Pièces jointes

  • Capture 3.png
    Capture 3.png
    18.5 KB · Affichages: 65
  • Capture 3.png
    Capture 3.png
    18.5 KB · Affichages: 65

entoanne

XLDnaute Nouveau
Re : Envoi Email

Bonjour à tous,

Pourras-tu essayer :

VB:
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

Résultat sous MSOutlook :

Regarde la pièce jointe 330367

A+ à tous

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 !
 

pir312

XLDnaute Nouveau
Re : Envoi Email

Bonsoir JCGL,

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.

Merci de ton aide
 

entoanne

XLDnaute Nouveau
Re : Envoi Email

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 !

Bonjour,

Après essai au travail, j'ai un message d'erreur "Erreur d'exécution '429' : Un composant ActiveX ne peut créer d'objet"

Savez vous pourquoi ?

cdt,
 

Discussions similaires

Réponses
2
Affichages
334
Réponses
1
Affichages
170
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 677
Messages
2 090 809
Membres
104 671
dernier inscrit
Guilbry