Envoie Mail Automatique Pour Anniversaire Client
Dan74200
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Dan74200 -
Dan74200 -
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
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:
- Envoie Mail Automatique Pour Anniversaire Client
- Réponse automatique thunderbird - Guide
- Formate pour taxer client 500€ - Forum PDF
- Filezilla client - Télécharger - Téléchargement & Transfert
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
2 réponses
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
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