Envoie mail auto sous condition

Bonjour,

Alors voila mon projet, afin de me faciliter les tacher sur un tableau excel je voudrai qu'il m'envoie automatiquement un mail via outllook qand une condition est remplit;

voila ce que j'ai pçour le moment

ActiveCell.FormulaR1C1 = "31"

Range("G3").Select

ActiveCell.FormulaR1C1 = "0:10"

Range("H3").Select

ActiveWorkbook.Save

En colonne G, dès que quelqu'un met le chiffre 31 il remplit ensuite la colonne H ,et parfois d'autre cellule sur la meme ligne, et sauvegarde.

Ma condition du mail auto est simple; Si dans la collone G un 31 apparait, envoyer automaitquement un mail quand le fichier est sauvegarder.

(Sachant egalement que mon tableu va de la ligne 1 a 1000 je voudrais que chaque fois qu'un 31 est mis dans une celulle de la collone G le mail parte auto sans qu'il me renvoie automatiquement un mail auto de la ligne precedente)

en option pour evoluer cette macro j'aimerai que la colonne a b c d e et f soit copié en tant que message dans le mail.

Est-ce que sa parrait faisaible ou pas?

car je regarde sur pas mal de forum, je trouve des chose sur des mails auto mais sa fonctionne pas forcement ou bien outlook ce lance pour envoyer un message avec la piece jointe mais pas mail qui part en automatique, il fallait que je clic moi-même sur le bouton envoyer....

Donc je suis un peu dans les choux sa fais plus de trois mois que je suis dessus et je suis arrivé à pas grand chose...

Si une personne aurrait une idée pour ce programme sa serai

Merci d'avance

Bonjour, des macro d'email il y en a la pelle..Celle-ci a était faite par une personne d'ici dont j'ai oublié le nom d'ailleurs (mes excuses)

Sub mail()
    Dim OutApp As Object, Outmail As Object
    Dim quoi As String, qui As String

    Set OutApp = CreateObject("outlook.application")
    Set Outmail = OutApp.createitem(0)

    quoi = "je fais un test"
    qui = Feuil1.[a1]

    On Error Resume Next
    With Outmail
        .To = qui
        .CC = ""
        .BCC = ""
        .Subject = "test macro outlook"
        .body = quoi
        '.attachements.add ("C:\test.txt)
        .send 'display
    End With
    On Error GoTo 0
    Set Outmail = Nothing
    Set OutApp = Nothing

End Sub

Ensuite pour l'automatisme c'est assez simple aussi,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Value = 31 Then MsgBox "Envoi d'email"
End Sub

Donc la dans l'exemple, si j'écris 31 dans une des cases de la colonne 2 alors je lance un message box. Sauf qu'à la place de lancer un message box vous vous pouvez lancer votre macro d'email.

.send c'est pour envoyer directement

.display c'est pour simplement préparer le message sans l'envoyer


Et en fouillant encore un petit peu il y a ça aussi qui pourrait faire l'affaire...

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

End Sub

Salut

Je te remercie d'avoir pris le temps de me répondre;

quand j'ai envoyé cette demande sur le forum j'ai trouvé ceci dans un site anglais

Sub Send_Email_Using_VBA()

Dim Email_Subject, Email_Send_From, Email_Send_To, _

Email_Cc, Email_Bcc, Email_Body As String

Dim Mail_Object, Mail_Single As Variant

Email_Subject = "test vba "

Email_Send_From = "xxxx@xxxx.com"

Email_Send_To = "xxxx@xxxx.com"

Email_Body = "presque!!!!"

On Error GoTo debugs

Set Mail_Object = CreateObject("Outlook.Application")

Set Mail_Single = Mail_Object.CreateItem(0)

With Mail_Single

.Subject = Email_Subject

.To = Email_Send_To

.cc = Email_Cc

.BCC = Email_Bcc

.Body = Email_Body

.send

End With

debugs:

If Err.Description <> "" Then MsgBox Err.Description

End Sub

j'ai testé, quand je fais exécuté la macro; le mail par direct donc jusqu'a la c'est un bon point; j'ai essayé d'introduire ce que tu m'avais donné ;

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

pour que le le mail par automatiquement quand la collum deux ; valeur=31...

Ma derniere question ... comment on combine tout sa avec la macro du mail auto + la condition y-a t-il une ecriture qpecial a rajouter entre les deux ou pas?

Merci

Bonjour. je préfère préciser pour éviter les ambiguités

se code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Value = 31 Then MsgBox "Envoi d'email"
End Sub

n'est pas à mettre dans un "module" mais dans la page de la feuille où s'il y a 31...Sur la photo trouvée sur le net, les "pages" des feuilles sont là où il y a le numéro 3.

Ensuite, après le "then" il faut mettre l'action à effectuer car Then veut dire "alors" donc dans mon exemple, 'jai mis Msgbox "envoi d'email" mais vous il faut simplement mettre après le then le nom de la macro à effectuer, soit Send_Email_Using_VBA

ce qui donne ceci

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Value = 31 Then Send_Email_Using_VBA
End Sub

Parfait, je te remercie infiniment, sa fonctionne nickel, je vais essayer de l'améliorer pour qu'il mette dans l"'email body "des choses automatiques mais sinon parfais.

Merci de ton aide

De rien et merci d'avoir dit merci ! Sa touche beaucoup par contre...

Rechercher des sujets similaires à "envoie mail auto condition"