Declencher un mail conditionnel automatique

M

mara58

Guest
Bonjour,
Je suis sûrement en plein délire, mais on ne sais jamais...
Imaginons, que par une requête web qui se lance toute les 5 minutes je récupère des données dans la cellule A1.
Si A1 est supérieur à une valeur x , pensez-vous qu'il soit possible de concevoir une fonction personnalisée qui déclencherai un mail à une adresse définie dans une des variables de la fonction et un titre de message contenu dans une deuxième variable de la fonction .
Coté requête web: pas de problème j'y arrive parfaitement, mais coté fonction personnalisée evoyant un mail conditionnel je sèche.
Cordialement
mara
 
M

michel

Guest
bonjour Mara

dans la macro ci-dessous ( à placer au niveau de la feuille contenant les données ) ,si la valeur de la cellule A1 est superieure à 100 , un mail est envoyé automatiquement
attention un message d'erreur est renvoyé si l'adresse email n'est pas valide ( Cellule A2 dans l'exemple )


Private Sub Worksheet_Change(ByVal Target As Range)
'testé avec WinXP
Dim iMsg As Object, iConf As Object
'Dim iBP As Object

Const cdoSendUsingPickup = 1
On Error Resume Next
If Target.Address = "$A$1" And Target > 100 Then
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")

With iMsg
Set .Configuration = iConf
.To = Range("A2")
.Subject = Range("A3")
.HTMLBody = Range("A1")
'Set iBP = iMsg.AddAttachment("C:\lefichier.txt")
.Send
End With
End If
End Sub


bon apres midi
MichelXld
 
M

mara58

Guest
Bonjour Michel,
Merci pour aide: je ne pensais pas que cela soit possible...
bien que je sois pas parvenu à le faire fonctionner ...
Je me permet de te joindre le fichier excel sur lequel j'ai fait l'essai.
A noter que je travaille avec outlook.
Au fait peut-on rendre la valeur 100 variable , en la mettant A9 par exemple.
Si tu as un peu de temps devant toi peux tu me dire ou j'ai fait l'erreur ?
Cordialement
mara
 

Pièces jointes

  • MailAuto.zip
    6.2 KB · Affichages: 27
M

michel

Guest
rebonjour Mara

l'erreur est liée au fait que tu as placé la macro dans un module au lieu de la placer au niveau de la feuille comme je l'avais indiqué dans mon message
ci-joint le classeur modifié avec quelques indications sur l'emplacement de la macro

si tu souhaites en savoir plus sur les procedures evenementielles , je te conseilles le liens ci-dessous

Lien supprimé


bon apres midi
MichelXld
 

Pièces jointes

  • Mail_Auto_V02.zip
    24.6 KB · Affichages: 43
M

mara58

Guest
Salut
merci en core pour ton aide...
encore un petit souci avec mon ordi :

si je met 1000 en A1 il se produit une erreur d'exécution, la valeur configuration "SendUsing" est non valide


le mail ne s'envoie pas
cordialement
mara
 
M

michel

Guest
Re: Declencher un mail conditionnel automatique ** demande de tests **

rebonsoir

est ce qu'il y aurait une ame charitable sur le forum pour faire d'autres tests sur le classeur Mail_Auto_V02
avant de modifier la valeur de la cellule A1 , saisissez votre adresse email dans la cellule A2
si la valeur saisie dans la cellule A1 est superieure à 100 , un mail devrait etre envoyé automatiquement sans message de confirmation

d'avance merci
MichelXld
 
C

Celeda

Guest
Bonsoir,

itou, the same thing that Monique !!! : all it's ok

XP familial and XP version anglaise


CoucouCeleda.gif
 
M

mara58

Guest
Bonsoir michel,salim,celada,monique
merci pour votre aide et votre perspicacité.
l'idée de michel de faire des tests est géniale, il semble sous excel 2000 cela ne fonctionne pas mais sous excel 2002 tout soit ok.
par contre si quelqu'un peut faire un test avec excel 2000, et que ça me marche pas alors la version d'excel serait bien en cause.
Bonne nuit.
mara
 
P

petchy

Guest
bonsoir le forum

j'ai XP pro et office 2003 et j'ai le meme probleme que Mara "SendUsing" est non valide

Private Sub Worksheet_Change(ByVal Target As Range)
'testé avec WinXP
Dim iMsg As Object, iConf As Object
'Dim iBP As Object

Const cdoSendUsingPickup = 1
'On Error Resume Next
If Target.Address = "$A$1" And Target.Value > Range("A9").Value Then
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")

With iMsg
Set .Configuration = iConf
.To = Range("A2")
.Subject = Range("A3")
.HTMLBody = Range("A1")
'Set iBP = iMsg.AddAttachment("C:\lefichier.txt")
.Send 'le probleme viens de là
End With
End If
End Sub

smileys-gif-1543.gif
Petchy
 
Z

Zon

Guest
Salut,

Même problèmes que Petchy et Mara car je n'utilise pas Outlook Express donc pas de compte créé. En fait il faut lui indiquer dans ce cas l'adresse du serveur SMTP ainsi que l'adresse de l'émetteur, si on utilise un boite un peu spéciale comme Yahoo... il faut mettre le serveur de son FAI, par exemple Free dans mon cas même si je n'ai pas d'adresse Free.

Sur Wanadoo Mara tu passes peut être par leur logiciel spécifique certainement la raison de l'erreur qui peut persister peut être malgré cette mdif

With iMsg
.To = Range("A2")
.Subject = Range("A3")
.HTMLBody = Range("A1")
.From = "Mara58@wanadoo.fr"
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.wanadoo.fr"
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Configuration.Fields.Update
.Send
End With


A+++
 

Discussions similaires

Statistiques des forums

Discussions
314 015
Messages
2 104 559
Membres
109 080
dernier inscrit
Merilien