Oi lá,
Por favor, tente o código abaixo
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
Você mencionou que deseja enviar um e-mail para o PM cujas iniciais estão na mesma linha marcada como concluída. O endereço de e-mail dele está na mesma linha? O código na 6ª linha ajuda a encontrar as iniciais dos gerentes de projeto, você pode alterá-lo para que encontre o endereço de e-mail.
Altere a string "concluído" na 5ª linha para a string real que você usa para marcar o trabalho como concluído.
Observe que você pode alterar o snippet abaixo de acordo com suas necessidades.
xMailBody = "Olá" & vbNewLine & vbNewLine & _
"Esta é a linha 1" & vbNewLine & _
"Esta é a linha 2"
On Error Resume Next
Com xOutMail
.Para = xPara
.CC = ""
.BCC = ""
.Subject = "enviar por teste de valor de célula"
.Body = xMailBody
.Exibir 'ou usar
' .Enviar
Terminar com
Se você tiver alguma dúvida, por favor, não hesite em me perguntar.
Amanda