Salut,
Veuillez essayer le code ci-dessous
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Range("c:c"), Target) Is Nothing Then Exit Sub
If Target.Value = "done" Then
Set xRg = Target.Offset(0, -1) 'Find email address
Call Mail_small_Text_Outlook(xRg.Value)
End If
End Sub
Sub Mail_small_Text_Outlook(ByVal xTo As String)
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi there" & vbNewLine & vbNewLine & _
"This is line 1" & vbNewLine & _
"This is line 2"
On Error Resume Next
With xOutMail
.To = xTo
.CC = ""
.BCC = ""
.Subject = "send by cell value test"
.Body = xMailBody
.Display 'or use
' .Send
End With
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
Vous avez mentionné que vous souhaitiez envoyer un e-mail au PM dont les initiales se trouvent dans la même ligne que celle marquée comme terminée. Son adresse e-mail est-elle sur la même ligne ? Le code de la 6ème ligne permet de retrouver les initiales du chef de projet, vous pouvez le modifier pour qu'il trouve l'adresse email.
Veuillez remplacer la chaîne "done" dans la 5e ligne par la chaîne réelle que vous utilisez pour marquer le travail comme terminé.
Notez que vous pouvez modifier l'extrait ci-dessous selon vos besoins.
xMailBody = "Bonjour" & vbNewLine & vbNewLine & _
"Ceci est la ligne 1" & vbNewLine & _
"C'est la ligne 2"
On Error Resume Next
Avec xOutMail
.À = xÀ
.CC = ""
.BCC = ""
.Subject = "envoyer par test de valeur de cellule"
.Corps = xMailBody
.Afficher 'ou utiliser
' .Envoyer
Terminer par
Si vous avez des questions, n'hésitez pas à me les poser.
Amanda