Como hacer que Excel envie correo automaticamente con condicione en celdas C1 = SI(B1>3, "Alerta" , " "), C2 = SI(B2>3, "Alerta"

Mi situación es esta, si en mis celdas B1, B2, B3, Bn, tengo ciertos valores que sean <3 mis valores están en estado normal pero cuando son >=3 ya tengo una falla y es donde quisiera que automáticamente me enviase un correo informándome que existe un error, se podría hacer alguna macro para este caso.

1 respuesta

Respuesta
1

Revisa el siguiente artículo para enviar por outlook en base a una condición

https://www.gerencie.com/enviar-correos-con-condicion-desde-outlook-con-excel.html 

Cambia en la macro 

If Cells(i, "E").Value = "Pendiente" Then

Por:

If Cells(i, "E").Value >= 3 Then

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Perfecto, envía el dato pero no lo manda automático, tengo que accionar la macro, la sitiacion es que esos correos los enviaría quien monitorea los equipos, ¿no habrá una forma en que se envíe automático al momento que la celda con condición >=3 se active?

Ejemplo, me esta dando información en mis celdas C2, C3, Con, ahí agregaría los valores que me arroje el sistema y puse en la celda E2, E3, En, la condición que si en las celdas "C" existe un numero mayor = a 3 me envíe el correo en automático sin tener que accionar la macro manualmente, saludos...

¿En cuál celda capturas el dato?

Si en la celda C2 capturas el dato, no la fórmula, si en la celda C2 capturas el número 4 entonces la macro se activará en automático, revisará si el 4 es mayor a 3 y enviará el correo

Ahora pon la siguiente macro en los eventos de tu hoja

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Not Intersect(Target, Range("C:C")) Is Nothing Then
        If Cells(Target.Row, "C").Value >= 3 Then
            Set dam = CreateObject("outlook.application").createitem(0)
            dam.To = Cells(i, "B").Value 'Destinatarios
            dam.Subject = "Recordatorio de seguimiento a pendientes"
            dam.Body = "Estimado/a : " & Cells(i, "A").Value & vbCr & vbCr & _
            "Le recordamos que tiene pendiente " & _
            "el siguiente requerimiento : " & Cells(i, "C").Value & vbCr & vbCr & _
            "Saludos cordiales"
            dam.Send 'El correo se envía en automático
            'dam.Display 'El correo se muestra
        End If
    End If
End Sub

Si el dato que capturas va en otra celda, entonces cambia las "C" de "C:C" y (target.row, "C") por la columna donde capturas el valor.

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. En el panel del lado derecho copia la macro

sal u dos

Me aparece eso, con este código si lo manda automático pero no se como depurar eso haha

¿Pero qué dice el error?

Dice:

Se ha producido un error en el tiempo de ejecución: 

Error definido por la aplicación del objeto

Va la actualización

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Not Intersect(Target, Range("C:C")) Is Nothing Then
        If Cells(Target.Row, "C").Value >= 3 Then
            Set dam = CreateObject("outlook.application").createitem(0)
            dam.To = Cells(Target.Row, "B").Value 'Destinatarios
            dam.Subject = "Recordatorio de seguimiento a pendientes"
            dam.Body = "Estimado/a : " & Cells(Target.Row, "A").Value & vbCr & vbCr & _
            "Le recordamos que tiene pendiente " & _
            "el siguiente requerimiento : " & Cells(Target.Row, "C").Value & vbCr & vbCr & _
            "Saludos cordiales"
        End If
    End If
End Sub

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas