Martes, septiembre 20 2022
  1 Respuestas
  4.8K visitas
0
Votos
deshacer
Hola, soy muy nuevo en Excel y me preguntaba si es posible configurar un código de Excel de manera que pueda enviar un correo electrónico a una persona específica cuando un valor en una columna se marca como completado. Por ejemplo, si JobX está en A2, y en la misma fila las iniciales de los gerentes de proyecto están en esa fila, B2, este trabajo se marca como completado en C2, cuando la columna C se marca como completada, se debe enviar un correo electrónico al PM cuyas iniciales están en esa fila. Encontré un código que puede enviar un correo electrónico cuando la celda de una columna se marca como completada, pero me preguntaba si puedo ser más específico, como enviar un correo electrónico a una persona específica cuando se cumplen ciertas condiciones. Gracias,
Chris
Hace años 1
·
#3076
0
Votos
deshacer
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
  • De la página:
  • 1
Aún no hay respuestas para esta publicación.