Como enviar un email a partir de datos de una tabla

Tengo una tabla en Excel y tengo que enviar un email por Outlook solicitando cotización por cada fila de la tabla y las columnas son:

Nombre_Persona, Direccion_postal1, Direccion Postal2, Cant_Pallets, Peso(lbs)

Tengo una plantilla de email que es la que necesito escribir en cada correo y se le agregan los campos anteriores.

Ej:Estimado Sr. (Campo Nombre_persona)

Tengo el gusto de solicitarle una cotización para:

(Aqui va campo Direccion Postal1)

(Direccion_postal2)

Cantidad de Pallets: (campo Cant_Pallets)

Peso Total: (campo Peso(lbs)

¿Espero sus comentarios de como seria la mejor forma de hacerlo?

1 Respuesta

Respuesta

Aleida Cervino,

Para poder realizar tu requerimiento, tenemos 2 alternativas:

1. Realizarlo mediante correspondencia combinada en Word con los datos obtenidos desde una archivo excel. Adjunto enlace para su revisión sobre correspondencia combinada en word.

https://es.linkedin.com/pulse/combinar-correspondencia-utilizando-word-y-excel-para-moctezuma

Una vez elaborado el mensaje y realizar la correspondencia combinada, para poder enviar los mails se debe realizar lo siguiente:

Ir al Menú CORRESPONDENCIA ---> Opción FINALIZAR ---> Item ENVIAR MENSAJES DE CORREO ELECTRÓNICO.

Finalmente, seleccionar el campo CORREO y digitar el nombre del ASUNTO.

Adjunto los archivos en word y excel donde se elaboró la correspondencia combinada.

2. Ejecutar una macro, basado en la estructura del archivo excel "Tabla Excel Envio Mail".

Adjunto el código de la macro para su puesta en práctica.

Sub Envio_Masivo_Adjunto()
Dim OutApp As Object
Dim OutMail As Object
Dim NumeroDirecctoras As Long
Sheets("Tabla").Select
NumeroFilas = 4 'Se de debe cambiar según el número de filas de la tabla excel
For i = 1 To NumeroFilas
'Se crea la conexión con el gestor de correo
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.logon
'Se crea metodo de envio de correo
Set OutMail = OutApp.CreateItem(0)
ActiveWorkbook.Save
'Se define el destinatario, la copia y la copia oculta el asunto
'el cuerpo del correo y los archivos adjuntos si se requiere. Especificando
'los campos usados.
On Error Resume Next
        With OutMail
            .To = Cells(i + 1, 6).Value
            '.CC = ""
            '.BCC = ""
            .Subject = Cells(i + 1, 7).Value
            .Body = Cells(i + 1, 8).Value
            '.Attachments.Add ""
            .Send
        End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
Next i
End Sub

Sin otro particular,

Cualquier consulta, estaré pendiente. Gracias.

Adjunto los archivos en word y excel donde se elaboró la correspondencia combinada.

Plantilla Mail

Tabla Excel Envio Mail

Hola Efrain:

En el ejemplo veo que pones el cuerpo del mensaje en una columna mas de la tabla y yo necesito irlo creando en la medida que voy haciendo los email, tomar cada valor de la celda correspondiente no tener una celda con el texto complete a enviar si no crearlo a traves de la macro, la columna Cuerpo Mail no existe.

El uso de las tres columnas "F", "G" y "H", son los datos que se requieren para realizar el envío de mails masivo mediante la ejecución de la macros VBA.

Claro fue una alternativa, en caso tengas conocimientos básicos de macros VBA.

En el cuerpo del mensaje la estructura es la misma para todos los mails, sólo que van a cambiar los datos del nombre, dirección y pedido del cliente.

Sub Envio_Masivo_Adjunto()
Dim OutApp As Object
Dim OutMail As Object
Dim NumeroDirecctoras As Long
Sheets("Tabla").Select
NumeroFilas = 4 'Se de debe cambiar según el número de filas de la tabla excel
For i = 1 To NumeroFilas
'Se crea la conexión con el gestor de correo
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.logon
'Se crea metodo de envio de correo
Set OutMail = OutApp.CreateItem(0)
ActiveWorkbook.Save
'Se define el destinatario, la copia y la copia oculta el asunto
'el cuerpo del correo y los archivos adjuntos si se requiere. Especificando
'los campos usados.
On Error Resume Next
        With OutMail
            .To = Cells(i + 1, 6).Value
            '.CC = ""
            '.BCC = ""
            .Subject = Cells(i + 1, 7).Value
            .Body = Cells(i + 1, 8).Value
            '.Attachments.Add ""
            .Send
        End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
Next i
End Sub

Ahora si en caso no tengas conocimientos de macros VBA, la otra alternativa es usando correspondencia combinada. Por ello que adjunté 2 archivos en word y excel, ya que se deben utilizar en conjunto, pero en este caso no se requiere el uso de las columnas "F", "G" y "H" del archivo excel para la realización del envío masivo.

También deje un enlace sobre el tema de correspondencia combinada para su mejor entendimiento, así como el paso a paso para realizar el envío de los mails de forma masiva.

Sin otro particular,

Cualquier consulta, estaré pendiente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas