Envoie Mail Automatique Pour Anniversaire Client

Fermé
Dan74200 Messages postés 1 Date d'inscription mercredi 23 mars 2016 Statut Membre Dernière intervention 23 mars 2016 - 23 mars 2016 à 10:40
 Dan74200 - 23 mars 2016 à 17:42
Bonjour à toutes et tous, je suis en galère :( :( :(
Voilà je cherche à envoyer automatiquement un mail à des clients selon leur date d'anniversaire depuis un fichier Excel. je souhaite que cette tâche se fasse automatiquement sans ouvrir le fichier Excel via Outlook.

Colonne A : Nom
Colonne B : Prénom
Colonne C : Date de naissance
Colonne D : Mail du client
Colonne E : Mettre une croix quand le mail est envoyé.

De plus, je souhaite également que chaque 31 décembre de chaque année la colonne E soit vierge à nouveau pour la nouvelle année.

Voici le code VBA mais il ne fonctionne pas et je n'arrive pas à savoir pourquoi...

Merci de votre aide!!!

Option Explicit
Public Tps As Date
Public Vprenom, VadresseEmail As String

Sub TraitementAnnivs()

Dim vcell As Variant

If Left(Int(Now), 5) = "01/01" Then
Range("A5").Select
Range(Selection, Selection.End(xlDown)).Select
For Each vcell In Selection
If ActiveCell.Offset(0, 4).Range("A1").Value <> "" Then
ActiveCell.Offset(0, 4).Range("A1").Value = ""
End If
Next
End If


Sheets("Anniversaire").Select
Range("C5").Select
Range(Selection, Selection.End(xlDown)).Select

For Each vcell In Selection

If Left(Int(Now), 5) = Left(vcell.Value, 5) And vcell.Offset(0, 2).Range("A1").Value <> "X" Then
Vprenom = vcell.Offset(0, -1).Range("A1").Value
VadresseEmail = vcell.Offset(0, 1).Range("A1").Value

Call EmailCdo
vcell.Offset(0, 2).Range("A1").Value = "X"
End If
Next

End Sub

Sub EmailCdo()

Dim config As CDO.Configuration
Dim Email As CDO.Message
Set config = New CDO.Configuration
With config.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = CDO.cdoSendUsingPort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "**********************"
.Update
End With

Application.DisplayAlerts = False

Set Email = New CDO.Message
With Email
Set .Configuration = config

.To = VadresseEmail

.Subject = "Joyeux Anniversaire de la part de*********************"

.TextBody = "Bonjour," & vbLf & "Permettez moi de vous souhaiter un joyeux anniversaire et une excellente journée." & vbLf & "**********."

.From = "**************************"

.Send
End With

Application.DisplayAlerts = True
End Sub
Sub Email()

On Error Resume Next
Set Appli = GetObject(, "Outlook.Application")
If Appli Is Nothing Then
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myFolder = _
myNameSpace.GetDefaultFolder(olFolderInbox)
myFolder.Display
End If

Set mailobj = CreateObject("Outlook.Application")
Set mail = mailobj.CreateItem(olMailItem)

With mail
.SentOnBehalfOfName = SentOnName

.To = VadresseEmail
.CC = ""
.Subject = "Joyeux Anniversaire de la part de*******************"
.Body = "Bonjour," & vbLf & "Permettez moi de vous souhaiter un joyeux anniversaire et une excellente journée." & vbLf & "*****************************."
.Display

End With

End Sub

Sub Tempo()
Tps = Now + TimeValue("23:59:59")
Application.OnTime Tps, "Tempo"
Call TraitementAnnivs
ActiveWorkbook.Save
End Sub

Sub StopTempo()
On Error Resume Next
Application.OnTime Tps, "Tempo", , False
End Sub
A voir également:

2 réponses

f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
23 mars 2016 à 16:22
Bonjour,


votre code quelque peu modifie pour envoi mail via Outlook

https://www.cjoint.com/c/FCxptuIXiwf


je souhaite que cette tâche se fasse automatiquement sans ouvrir le fichier Excel Impossible, pour que le VBA puisse tourner, le fichier doit etre ouvert et ce qu'il ne faut pas oublier non plus, le PC doit etre en fonctionnement
0
Merci je vais tester de suite!!!
0