Macro para enviar correo desde Excel

Quisiera saber como poder enviar desde un botón macro correos electronicos a outlook, tengo la siguiente tabla pero solo quiero que se envíen algunas columnas, este es mi modelo:

Nota:

Esta tabla está destinada a ingresar diariamente datos que se irán almacenando, en la cual quisiera que al detectar la fecha de registro (es decir si la fecha es HOY, col Q) envíe el correo (Solo los nuevos ingresos, no repetidos) a varios correos, 5 para ser especifico:

Estimado Email_1

Se ingresaron nuevos registros el día "FECHA DE REGISTRO":

1 EMPRESA

2 NOMBRES

3 PUESTO

4 TIPCARGO

5 DESCRIPCIÓN

6 INICIO

7 FINAL

8 CONDICIÓN

Espero mi explicación haya sido clara y que pueda haber una solución para esta función.

1 respuesta

Respuesta
-1

Vamos a simular que le enviamos un correo a los clientes par informarles el saldo que debe pagar y la fecha de vencimiento de su pago.

Figura 1. Enviar correo a lista de clientes.

Para esta macro tendremos un texto prefenido que se enviará a cada cliente y el cuerpo del mail cambiará los datos con relación a cada cliente. Los datos que cambiarán son los relativos a las columnas de la tabla.

Esta macro no usará un formulario de Outlook para hacer los envíos, sino que desde el mismo código le definiremos los parámetros del email que se enviarán.

Los parámetros que se usarán son:

  1. Asunto (del correo).

  2. Correo (el emai del cliente).

  3. Destinatario (el nombre del cliente).

  4. Saldo.

  5. Fecha de vencimiento.

El texto que se enviará lo definimos dentro del código vba y va concatenado con los valores de cada cliente en la tabla. El texto que se enviará es el siguiente:

Apreciable [nombre]

Queremos informarle que su fecha de pago venció el día [fecha].

El saldo que debe liquidar es [saldo].

Atentamente:
Tarjetas de crédito.

Para que el código funcione, dentro del IDE de vba deberemos marcar la referencia de Outlook Object Library. Para marcarla elegimos el menú Herramientas > Referencias.

Figura 2. Elección de la referencia para poder usar Outlook de Office.

Macro: EnviarEmail

Ubicación: Módulo1.

Sub EnviarEmail()
'
' Declaramos variables
'
Dim OutlookApp As Outlook.Application
Dim MItem As Outlook.MailItem
Dim cell As Range
Dim Asunto As String
Dim Correo As String
Dim Destinatario As String
Dim Saldo As String
Dim Msg As String
    '
    Set OutlookApp = New Outlook.Application
    '
    'Recorremos la columna EMAIL
    '
    For Each cell In Range("B11:B23")
        '
        'Asignamos valor a las variables
        '
        Asunto = "Saldo vencido"
        Destinatario = cell.Offset(0, -1).Value
        Correo = cell.Value
        Saldo = Format(cell.Offset(0, 1).Value, "$#,##0")
        FechaVencimiento = Format(cell.Offset(0, 2).Value, "dd/mmm/yyyy")
        '
        'Cuerpo del mensaje
        '
        Msg = "Apreciable " & Destinatario & vbNewLine & vbNewLine
        Msg = Msg & "Queremos informarle que su fecha de pago venció el día "
        Msg = Msg & FechaVencimiento & "." & vbNewLine & vbNewLine
        Msg = Msg & "El saldo que debe liquidar es "
        Msg = Msg & Saldo & vbNewLine & vbNewLine
        Msg = Msg & "Atentamente:" & vbNewLine
        Msg = Msg & "Tarjetas de crédito."
        '
        Set MItem = OutlookApp.CreateItem(olMailItem)
        With MItem
            .To = Correo
            .Subject = Asunto
            .Body = Msg
            .Send
            '
        End With
        '
    Next
    '
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas