Enviar correos con condición desde Outlook con Excel

Es muy común que tengas que enviar varios correos dependiendo de una condición, por ejemplo, puede ser un estatus, lo que se puede condicionar desde Excel para ser enviados desde Outlook.

Envío de correos desde Excel.

Cuando tu lista de registros a revisar es considerablemente larga y quieres enviar todos esos correos con un solo clic, entonces es indispensable contar con una macro que nos ayude.

En el siguiente ejemplo te muestro como enviar un correo dependiendo si el estatus del registro está en “Pendiente”.

Suponiendo la siguiente base de datos:

enviar-correo-con-condicion-excel-1

La siguiente macro revisará cada registro y si en la columna “E”, el Estatus es igual a “Pendiente”, entonces enviará un correo personalizado al email que se encuentra en la columna “B”.

La macro es la siguiente:

Sub Enviar_Correos()
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Cells(i, "E").Value = "Pendiente" 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
Next
MsgBox "Correos enviados"
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale clic derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar clic derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: Enviar Correos
  10. Aceptar.
  11. Guarda tu archivo como Excel habilitado para macros.
  12. Para ejecutar la macro presiona clic en la imagen.

El resultado será algo como esto:

enviar-correo-con-condicion-excel-2

Descargar archivo de Excel

Recomendados.

Compártalo en Facebook Compártalo en Twitter

Déjenos su opinión

18 Opiniones
  1. Juan Dice:

    Al volver a usar el boton vuelve y envia otra vez el correo existe una forma que valide los correos ya enviados para no volver a enviarlos

    Responder
    • solucion Dice:

      para que no se envien nuevamente se puede elaborar una columna donde indique que correos fueron enviados, le pones un condicional con esa columna que cuando no tenga ningún se envié el correo y le asigne un valos a esa celda ejemplo un 1 y asi no te leerá nuevamente esa linea

      Responder
  2. Carlos Dice:

    muchas gracias, me ha servido bastante.

    tengo una pregunta:

    en mi caso necesito que se envie una leyenda en espanol e ingles pero me marca error de compilacion en la parte de dam.body = ,

    te envio la macro que intento hacer.

    Private Sub Workbook_Open()

    fila = 7

    Do While Not IsEmpty(Cells(fila, “E”))

    If Cells(fila, “E”) < Date Then

    x = MsgBox("Hoy es: " & Date & Chr(13) & Chr(13) & "Solicitar Pago: " & Chr(13) & "Grupo: " & Cells(fila, "G") & "; " & "Importe: " & " $" & Cells(fila, "C") & "Pagos Pendientes")

    End If

    fila = fila + 1

    Loop

    End Sub

    Sub SiNoCancelar()

    Dim Pregunta As Integer

    Pregunta = MsgBox("Deseas continuar?", vbYesNoCancel + vbInformation, "Secrets & Now")

    Select Case Pregunta
    Case Is = 6
    MsgBox "Se enviara Correo"
    Case Is = 7

    MsgBox " No Se Enviara Correo"

    Exit Sub

    Case Else
    MsgBox "Cancelado"

    Exit Sub

    End Select

    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
    If Cells(i, "F").Value = "Vencido" Then
    Set dam = CreateObject("outlook.application").createitem(0)
    dam.To = Cells(i, "B").Value 'Destinatarios
    dam.Subject = " Deposito para Grupo " & Cells(i, "G").Value
    dam.body = "Estimado/a : " & Cells(i, "A").Value & vbCr & vbCr & _
    "Reciba un cordial saludo , estoy dando seguimiento el depósito . " & _
    vbNewLine & "Sería tan amable de compartirme el comprobante de la transferencia por $ " & Cells(i, "C").Value & " " & Cells(i, "D").Value & " " & "Agendado para el" & " " & Cells(i, "E").Value & ". " & vbCr & vbCr & _
    "Carlos Basabe" & vbNewLine & " Auditoria de Grupos " & "Hoteles ."

    "Dear: " & Cells(i, "A").Value & vbCr & vbCr & _
    "Greetings , I'm following the scheduled deposit for the program. " & _
    vbNewLine & "Could you please share me a copy of the deposit for $ " & Cells(i, "C").Value & " " & Cells(i, "D").Value & " " & "scheduled on" & " " & Cells(i, "E").Value & ". " & vbCr & vbCr & _
    "Carlos " & vbNewLine & " Groups Auditor " & " Hoteles."

    dam.Display 'dam.Send El correo se envía en automático
    'dam.Display 'El correo se muestra
    End If
    Next
    MsgBox "Correos enviados"
    End Sub

    Responder
  3. Ernesto Dice:

    Buenas tardes, la primer macro que ponen esta genial, pero en mi caso necesito generar un resumen de las ventas en las primeras filas del reporte, y el listado para envio de correos inicia en la fila A7, como puedo modificar la macro para que inicie desde ahi.
    muchas gracias

    Responder
    • Lyda Dice:

      Hola, Le asignas a la variable i el valor de 7 para que no inicie en la fila 2 sino en la 7.

      Saludos.

      Responder
  4. manu Dice:

    Buenos días el macro funciona perfecto,

    Unicamente tengo una cuestión, tengo varias cuentas de correo en Outlook
    Quiero enviar estos correos de una cuenta en específico

    ¿Cómo modificar el macro para enviarlo desde esa determinada dirección de correo?

    Muchas gracias

    Responder
  5. Anastasio Morales Dice:

    hola buenas tardes me pareció perfecta tu macro, y si necesito enviar a varios en copia para cual seria el código me podrías ayudar

    Responder
  6. icebergpmontt Dice:

    Holabuscando el envio masivos desde planilla excel he encontrado su macro. mi consulta es como le agrego rutina para que adjunte archivo a cada destinatario, los tengo en la celda “G” y son diferentes para cada destinario.

    gracias por tu ayuda

    Responder
  7. Diego Durán Dice:

    Está muy bien la macro, me salvo de un detalle importante… tengo una duda, cada que manda correo solicita permitir el envío del mismo, como se le puede hacer para que no solicite autorización?

    Agradezco el apoyo y de nueva cuenta gran aporte!

    Responder
  8. Lorena N Dice:

    Excelente macro! Funciona perfecto
    Sería magnifico ver más contenido de su parte
    Por favor no dejen de crear material! Hoy me salvaron en un proyecto escolar!
    Son increíbles, Mil gracias!

    Responder
  9. armando mejia b Dice:

    no he vuelto a recibir los correos de informacion diarios, quisiera saber que pasa?

    Responder
  10. enrique Dice:

    La macro está perfecta, aunque sólo me falta la opción de enviar la factura en formato pdf como adjunto al mensaje, habr´ía alguna forma de incorporarlo a su macro?gracias de antemano.

    Responder
  11. Hifingel Dice:

    Hola,

    Hay alguna forma de que se mande el correo sin depender de un botón que active el envío. Me refiero que con solo escribir “pendiente” en la celda y dar a intro ya envíe el correo automáticamente

    Responder
  12. AIR Dice:

    Hola, buenas tardes, si en el ejemplo que ponen en la base de datos el nombre de Daniel apareciera 2 ó mas veces con diferentes conceptos pendientes ( factura, nota, pedido, etc. ) ¿Cómo se podría enviar todo en un solo correo? ósea que el resultado fuera algo como esto

    Para: [email protected]

    Asunto: requerimiento de seguimiento a pendientes

    Estimado/a: Daniel

    Le recordamos que tiene pendiente el siguiente requerimiento:

    FACTURA
    PEDIDO
    NOTA

    Saludos cordiales

    Responder
  13. clamacobe Dice:

    buen dia
    hola USTEDES VENDEN FORMATOS PARA LIQUIDCIONES y prestaciones scoiales
    [email protected]

    Responder
  14. clamacobe Dice:

    buen dia, ustedes venden formatos para liquidaciones de prestacion social y vacaciones
    [email protected]

    Responder
  15. Ivan Garcia Dice:

    Gracias, Me ha funcionado, perfecto.

    Alguien sabe como en ese correo puedo adjuntar una imagen?

    Responder
  16. danielulloa Dice:

    Hola, cómo se modificaría el código para enviar el correo con copia a otros emails?
    Agrego las columnas correspondientes a los correos de las personas a quien se le enviará copia, pero en el código cómo lo podría realizar?

    Saludos

    Responder
En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc., pero debe hacerlo con respeto, sin insultar y sin ofender a otros.

Información legal aplicable para Colombia.

Este sitio web utiliza cookies propias y de terceros para ofrecer un mejor servicio. Al seguir navegando acepta su uso.