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
Deje su opinión o su pregunta.

Regístrese para informarle cuando se responda su pregunta.

  1. AIR (julio 14 de 2022)

    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
  2. clamacobe (agosto 25 de 2022)

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

    Responder
  3. clamacobe (agosto 25 de 2022)

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

    Responder
  4. Ivan Garcia (febrero 22 de 2023)

    Gracias, Me ha funcionado, perfecto.

    Alguien sabe como en ese correo puedo adjuntar una imagen?

    Responder
  5. danielulloa (septiembre 6 de 2023)

    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
  6. RENZO ORIHUE (diciembre 4 de 2023)

    QUIERO REENVIAR CORREOS ELECTRONICOS QUE INGRESAN A MI CUENTA DE FORMA ALEATORIA A 3 CORREOS DISTINTOS , AGUN AYUDA

    Responder
    • Gerencie.com
      Gerencie.com en respuesta a RENZO ORIHUE (diciembre 4 de 2023)

      No comprendemos exactamente cómo seleccionaría los correos y los destinatarios, pero aquí sugerimos una modificación de la macro original:

      Sub Enviar_Correos()
      Dim destinatarios() As Variant
      Dim i As Integer
      Dim index As Integer
      Dim dam As Object
      Dim cantidadDestinatarios As Integer
      Dim j As Integer

      ‘ Definir la cantidad de destinatarios deseados (en este caso, 3)
      cantidadDestinatarios = 3

      ‘ Definir los destinatarios
      destinatarios = Range(“B2:B” & Range(“B” & Rows.Count).End(xlUp).Row).Value

      ‘ Semilla para generar números aleatorios
      Randomize

      ‘ Bucle principal para enviar correos
      For i = 2 To Range(“A” & Rows.Count).End(xlUp).Row
      If Cells(i, “E”).Value = “Pendiente” Then
      ‘ Bucle para enviar a la cantidad de destinatarios especificada
      For j = 1 To cantidadDestinatarios
      ‘ Generar índice aleatorio
      index = Int((UBound(destinatarios) – LBound(destinatarios) + 1) * Rnd + LBound(destinatarios))

      ‘ Crear objeto de aplicación Outlook y correo
      Set dam = CreateObject(“outlook.application”).CreateItem(0)

      ‘ Asignar destinatario aleatorio
      dam.To = destinatarios(index, 1)

      ‘ Configurar el resto del correo
      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”

      ‘ Enviar el correo
      dam.Send
      Next j
      End If
      Next i

      ‘ Mensaje de confirmación
      MsgBox “Correos enviados”
      End Sub

      Responder

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