Macro envoie de mail automatique depuis Excel

Bonjour a tous ,

Depuis hier, j'essaie de faire une macro qui me permet d'envoyer un mail automatiquement (depuis excel) en fonction de la date. Je me suis aider de ce forum mais avec mon peu d'expérience je n'est toujours pas réussis ce que je voulais faire .

Je vous explique mon projet : Je fait un suivi commercial/client et chaque client possédera une ligne du tableau sur excel avec ces informations ainsi que les étapes du suivi (par date).

Ce que je voudrais donc, ce serait une macro qui permettrai de faire un rappel, une relance par mail à un destinataire défini (qui peut être différent selon les étapes) pour chaque date butoir (date butoir calculée en fonction de la date de réalisation de l'étape précédente).

Ci-joint le tableau de référence.

Merci d'avance.

Sub aargh()

Set ws = Sheets("feuil1")

With CreateObject("Outlook.Application")

For i = 3 To ws.Cells(Rows.Count, 1).End(xlUp).Row

If ws.Cells(i, "A") + 7 < Now() And ws.Cells(i, "E") <> "fourni" Then

With .CreateItem(0)

.To = ws.Cells(i, "D")

.Subject = ""

.Body = "Bonjour, Merci ........................ "

.display

End With

End If

Next i

End With

End Sub

Bonjour,

On m'avait founi ce code qui marche super bien.

on supposera que la date se trouve dans la colonne A donc si A supérieur à 7 jours et E une colonne ou tu renseigne le statut si la personne répond a tes relances donc paas d'envoie de mail If ws.Cells(i, "A") + 7 < Now() And ws.Cells(i, "E") <> "fourni" Then

la colonne D la ou se trouve les adresses mails des personnes a qui tu veux envoyer .To = ws.Cells(i, "D")

Tu opeux les modifier ou rajouter

Je suis novice aussi et je pioche bcp sur ce forum

Salut,

Merci de ta réponse soumsoum, j'ai oublier une autre condition.

La relance ne se fait pas si la personne complète la date de réalisation (colonne qui se trouve a droite de la colonne de la date butoir) donc si le responsable de l'action remplie la colonne de la date de réalisation avant la date de relance alors le mail ne sera pas envoyer.

Par contre merci du supplément de ta macro mais j'ai un soucis, le mail devrait être envoyer le jour même de la date butoir à minuit (pour que le matin les utilisateurs ouvre leurs mail et aient "le planning" de suivi commercial de la journée et ce chaque jour.

Encore merci de ton aide sounsoun, je ne sais pas si tu pourra encore m'aider mais merci d'avance.

La condition c'est If ws.Cells(i, "A") + 7 < Now() And ws.Cells(i, "E") <> "fourni" Then

Essaye avec ca. tu adaptes les colonnes aux tiennes c'est à dire la A et la E

Donc

If ws.Cells(i, "A") = Now and ws.Cells(i, "E") <> "Date" Then

J'ai tenter quelque petites choses sans succès, la macro s’exécute mais rien ne se passe.. .

J'ai recrée un tableau et changer seulement 2 cellule ,a la colonne A j'ai mis la date butoir a la colonne B rien du tout (date de réalisation) pour envoyer l'email et en C l'email mais rien ne passe.

J'ai beau y réfléchir,je comprend pas pourquoi l'email ne s'envoie pas alors que quand je lis moi-même la macro, tout devrait fonctionner.

Encore merci.

Re-bonjour soumsoum,

C'est ok j'ai fait quelques modifications et ça marche . Il me reste plus qu'à trouver comment l'exécuter sur toutes les lignes de mon tableau (chaque client) et comment l'exécuter automatiquement sans que le fichier soit systématiquement ouvert...

Je te remercie de ton aide, elle m'a été bien précieuse. Je ne l'aurai pas réussie sans toi .

La macro :

Sub Envoyer_Mail()

Dim ObjOutlook As New Outlook.Application

Dim Worksheets

Set ObjOutlook = New Outlook.Application

Set Worksheets = ObjOutlook.CreateItem(olMailItem)

Set sh1 = Sheets("Sans")

With Worksheets

If sh1.Range("A1") = sh1.Range("B1") And sh1.Range("C1") = ESTVIDE Then A1 correspond a la date automatique d'aujourd'hui ,A2 correspond a la date butoir et A3 a la date d'exécution

.To = "xxxxxx@xxx.xx"

.Subject = "xxx" & Date

.Body = "xxx"

.Display '

.Send

End If

End With

ObjOutlook.Quit

Set Worksheets = Nothing

Set ObjOutlook = Nothing

End Sub

.Send automatic

ou bien .send envoi automatic

Tu as déja mis .Send, tu rajoutes un des deux voir

Bonjour à tous,

Grâce a vos précédent messages, mon envoie de mail ce fait automatiquement, mais j'ai un autre probleme, je souhaite que mon mail écrive " Bonjour,..... Vous informe que XXXXXXX ( cellule A3 feuille 2 excel 2007) ....."

Vous l’avez compris je ne trouve pas la commande pour faire en sorte que le nom se modifie automatiquement en fonction de la nouvelle donnée dans la cellule.

Merci pour votre aide.

Bonjour,

Sur le code de la macro, tu rajoutes voir apres le " ceci & ws.cells (1, "A")

Ce qui donnera .Body "bonjour, jekeuakehejfnhzofjevfizh" & ws.cells (1, "A")

Ca marche merci beaucoup. Si je peux poser une dernière question ...

Le destinataire il est possible de le changer toujours de manière automatique,

je m'explique, J'ai

With OutMail

.To = "test@hotmail.fr"

je souhaiterais envoyer le mail à test1@hotmail.fr si dans la cellule A3 j'ai 1, et l'envoyer à test2@hotmail.fr si dans la cellule A3 j'ai 2

c'est possible ???

Re,

Si je comprends tu as un destinataire différent par cellule?

Si cest le cas, nous allons supposer que les adresses mails se trouvent dans la cellule E

.to = Ws.cells (i, "E")

ce n'est pas tout à fait ça, dans le contexte j'ai plusieurs personnes qui sont susceptible de prendre en charge une pièce, pour les personnes 1 ,2, 3, 4 je souhaite que le mail s'envoie à test1@hotmail.fr si c'est une personne 5, 6, 7 ,8 je souhaite que le mail s'envoie à test2@hotmail.fr et ainsi de suite...

Dans la cellule A3 ( oui je l'aime bien celle la) il y' aura ou 1, ou 2 , ... bref le nom d'une personne.

Donc je souhaite modifier l'adresse mail en fonction d'un nom dans une cellule

merci de ton aide

Je te conseille de poser la question sur le forum,

Je ne suis pas un pro de VBA

Je te remercie, j'ai déjà posé la question sans grand sucées ça viendra peut être ...

Mais encore un grand merci car tu m'as bien dépanné sur un point

Rechercher des sujets similaires à "macro envoie mail automatique"