Hola,
Por favor, intente el siguiente código
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
Usted mencionó que desea enviar un correo electrónico al PM cuyas iniciales están en la misma fila que marcó como completada. ¿Está su dirección de correo electrónico en la misma fila? El código en la sexta fila ayuda a encontrar las iniciales de los gerentes de proyecto, puede cambiarlo para que encuentre la dirección de correo electrónico.
Cambie la cadena "hecho" en la quinta fila a la cadena real que usa para marcar el trabajo como completado.
Tenga en cuenta que puede cambiar el fragmento a continuación según sus necesidades.
xMailBody = "Hola" & vbNewLine & vbNewLine & _
"Esta es la línea 1" & vbNewLine & _
"Esta es la línea 2"
On Error Resume Next
Con xOutMail
.A = xA
.CC = ""
.BCC = ""
.Subject = "enviar por prueba de valor de celda"
.Cuerpo = xCuerpo de correo
.Mostrar 'o usar
' .Enviar
End With
Si tiene alguna pregunta, por favor no dude en preguntarme.
Amanda