Mardi, 20 Septembre 2022
  1 Réponses
  4.7K visites
0
Votes
annuler
Bonjour, je suis très nouveau sur Excel et je me demandais s'il était possible de configurer un code Excel de manière à envoyer un e-mail à une personne spécifique lorsqu'une valeur dans une colonne est marquée comme terminée. Par exemple, si JobX est en A2, et dans la même ligne les initiales des chefs de projet sont dans cette ligne, B2, ce travail est marqué comme terminé en C2, lorsque la colonne C est marquée comme terminée, un e-mail doit être envoyé au PM dont les initiales sont dans cette rangée. J'ai trouvé un code qui peut envoyer un e-mail lorsque la cellule d'une colonne est marquée comme terminée, mais je me demandais si je pouvais être plus précis, comme envoyer un e-mail à une personne spécifique lorsque certaines conditions sont remplies. Merci,
chris
Il y a 1 année
·
#3076
0
Votes
annuler
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
  • Page:
  • 1
Il n'y a pas encore de réponse faites pour ce poste.