Vba integration celulle dans email body pour mail auto

nicopof

XLDnaute Nouveau
Bonjour a tous,
J'ai crée un code macro avec l'aide que j'ai pu trouvé sur le forum, et j'en suis arrivé à un code qui fonctionne mais j'aimerai l'amélioré.
Alors, tout simple colonne A B C = donné que j'écris au fur et a mesure et D = attribution d'un code
la macro que j'ai actuellement est la suivant:

(dans la feuille)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target.Value = 31 Then Send_Email_Using_VBA
End Sub

(dans le module)
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@gmail.com"
Email_Send_To = "xxxx@gmail.com"
Email_Cc = "xxxx@gmail.com"
Email_Body = "Salut guy" & vbCr & _
"" & vbCr & "Un code 31 a été atritubé a un dossier" & vbCr & "@TT" & vbCr & vbCr
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

C'est un mail à titre d'information et j'aimerai juste amélioré un point EMAIL_BODY
Pour le moment dès que je mets 31 dans une des cellules de la colonne D et que je tabule, un mail part automatiquement
Là où je coince un peu c'est que j'aimerai que dans l'email_body de ma macro affiche les cellules A B et C correspondant bien surs à la bonne ligne ou a été mit le 31

exemple: je suis a la ligne 10, dans la colonne D je mets le chiffre 31 dans l'email body je veux le contenu des cellules A10 B10 et C10 en corps de message dans mon email.

Je n'arrive pas à formuler cette demande en macro. Si une personne aurai un début d'idée cela pourrai m'orienté
Merci d'avance
Nico
 

nicopof

XLDnaute Nouveau
Re : Vba integration celulle dans email body pour mail auto

Salut
Je suis rentré de vacance hier donc j'étais pas trop sur le forum

Juste avant de partir j'ai reussit a update la formule

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub
Dim tablCode
tablCode = Array(31, 34, 36, 18, 99)

If Target.Column = 21 Or Target.Column = 25 Or Target.Column = 29 Or Target.Column = 33 Then
For i = 0 To 4
If Target.Value = tablCode(i) Then
'Macro email
'--------------------------------------------------------
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 = " DL " & tablCode(i)
Email_Send_From = "xxxx@gmail.com"
Email_Send_To = "xxxx@gmail.com"
Email_Cc = "xxxx@gmail.com"
Email_Bcc = "xxxx@gmail.com"
Email_Body = "Auto-mail" & vbCr & _
"" & vbCr & _
"Un code " & tablCode(i) & " a été attribué aujourd'hui" & vbCr & _
vbCr & _
"Date : " & Cells(Target.Row, 1) & vbCr & _
"Nom agent: " & Cells(Target.Row, 2) & vbCr & _
"N°t: " & Cells(Target.Row, 13) & vbCr & _
"STD: " & Format(Cells(Target.Row, 18), "hh:mm") & vbCr & _
"ATD: " & Format(Cells(Target.Row, 19), "hh:mm") & vbCr & vbCr & _
"DR1: " & Cells(Target.Row, 21) & vbCr & _
"Time: " & Format(Cells(Target.Row, 22), "hh:mm") & vbCr & _
"Explication: " & Format(Cells(Target.Row, 23), "hh:mm") & vbCr & vbCr & _
"DR2: " & Cells(Target.Row, 24) & vbCr & _
"Time: " & Format(Cells(Target.Row, 25), "hh:mm") & vbCr & _
"Explication: " & Format(Cells(Target.Row, 26), "hh:mm") & vbCr & vbCr & _
"DR3: " & Cells(Target.Row, 27) & vbCr & _
"Time: " & Format(Cells(Target.Row, 28), "hh:mm") & vbCr & _
"Explication: " & Format(Cells(Target.Row, 29), "hh:mm") & vbCr & vbCr & _
"DR4: " & Cells(Target.Row, 30) & vbCr & _
"Time: " & Format(Cells(Target.Row, 31), "hh:mm") & vbCr & _
"Explication: " & Format(Cells(Target.Row, 32), "hh:mm") & vbCr & vbCr & _
"@TT"

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 If

Next
End If
End Sub


donc la nickel quand dans la colonne 21 ou 25 ou 29 ou 33 un code
31 ou 34 ou 18 ou 36 ou 99 est mit, le mail par direct avec dans l'email body ce que j'ai besoin...

Dernier étape la je coince c'est que j'aimerai que dans l'email body si le code est mis dans la colonne 21, que la colonne 22 23 et 24 soit dans le mail. Le problème c'est que le mail est déjà parti alors que j'ai pas encore marquer touts les info des les cellules.

J'avais pensé à vouloir envoyé le mail une minute après mais j'arrive pas a inclure se système
dans ce que tu m'a envoyé sa revient à vouloir inclure la colonne E et F dans l'email body par exemple alors que le code se met dans la colonne D!!


Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 428
Messages
2 088 347
Membres
103 821
dernier inscrit
Lorient56