Saltar al contenido

Enviar Emails desde Excel con Macros


Recommended Posts

Estimados.

Estuve leyendo varios post y no logro encontrar especificamente con una solución.

En primer lugar necesito mandar un email con una macro con un contenido de excel.

Logro armar los distintos emails para cada destinatario especifico, ponerle un subject, pero no logro poner el cuerpo del mensaje.

NO necesito enviar una celda sola, ya que con .body = Range (Celda) lo envia, sino que necesito que envie toda una tabla entera.

Probe varias formas y no logro dar con la correcta.

.body= Range("A1:I11")

.body= Range("A1:I11").Value

.htmlbody=...

También he intentado con lo siguiente:

Sub EnviarEmail(Destinatario As Variant)

With ActiveSheet.MailEnvelope

.Introduction = Introduccion

.Item.to = Destinatario

.Item.Subject = Asunto

.Item.Send

End With

End Sub

Pero nada!

Les paso como tengo mi macro actualmente para que me puedan ayudar:

Sub Outlook_mio()

Dim UltFila, X As Long

UltFila = Cells(Cells.Rows.Count, 1).End(xlUp).Row

'variable para "manejar" el objeto Outlook

Dim OutApp As Object

'variable para "manejar" el objeto mail

Dim OutMail As Object

For X = 2 To UltFila

'creamos el objeto Outlook, para acceder a sus

'propiedades, métodos y eventos:

Set OutApp = CreateObject("Outlook.Application")

'logeamos: ojo acá, debemos tener la cuenta bien configurada

OutApp.Session.logon

'creo el mail

Set OutMail = OutApp.CreateItem(0)

'guardamos el libro actual, antes de enviarlo:

ActiveWorkbook.Save

'y acá comienza el "proceso de envío"

On Error Resume Next

With OutMail

'Dirección del Destinatario

.To = Cells(X, 9)

'asunto:

.Subject = Range("M1:M1").Value

'cuerpo

.Body = Range("A1:I1")

.CC = "" 'si queremos agregar alguna copia

.BCC = "" 'si queremos agregar alguna copia oculta

.display 'y envío el correo

End With

Next X

'destruyo los objetos para liberar recursos

Set OutMail = Nothing

Set OutApp = Nothing

End With

End Sub

Gracias!!!!

Enlace a comentario
Compartir con otras webs

Buenas noches,

Por indicar algo que debiera funcionar con lo que parece que tienes, te diría lo siguiente:


Sub Outlook_mio()
Dim UltFila, X As Long, info As String
UltFila = Range("I1").End(xlDown).Row
'variable para "manejar" el objeto Outlook
Dim OutApp As Object
'variable para "manejar" el objeto mail
Dim OutMail As Object
For X = 2 To UltFila
'creamos el objeto Outlook, para acceder a sus
'propiedades, métodos y eventos:
Set OutApp = CreateObject("Outlook.Application")
'logeamos: ojo acá, debemos tener la cuenta bien configurada
OutApp.Session.logon
'creo el mail
Set OutMail = OutApp.CreateItem(0)
'guardamos el libro actual, antes de enviarlo:
ActiveWorkbook.Save

info = ""
info = Range("A1").Value & " - " & Range("B1").Value

'y acá comienza el "proceso de envío"
On Error Resume Next
With OutMail
'Dirección del Destinatario
.To = Cells(X, 9)

'asunto:
.Subject = Range("M1:M1").Value

'cuerpo
.Body = info

.CC = "" 'si queremos agregar alguna copia
.BCC = "" 'si queremos agregar alguna copia oculta

.display 'y envío el correo
End With
Next X
'destruyo los objetos para liberar recursos
Set OutMail = Nothing
Set OutApp = Nothing

End Sub

[/CODE]

Debieras consultar la página: Excel Automation - Ron de Bruin

Saludos,

Juan

Enlace a comentario
Compartir con otras webs

A ver si te gusta este ejemplo.

Fue idea de Logroastur, con alguna mejora que he añadido (enviar con copia, insertar y abrir los archivos y la hora de envío del mensaje)

Puedes añadir tantos adjuntos como desees y enviar parte de ellos.

Saludos.

Enviar mensajes con adjunto y visualizar.zip

Enlace a comentario
Compartir con otras webs

Hola Febrero

Muchas gracias por tu comentario.

Pero no es lo que estoy buscando.

Porque ahi solamente lo que logro es que se me almacenen varios valores en una variable y que luego eso sea el contenido del email.

Yo lo que necesito es que la TABLA completa, por ejemplo A1:I11, sea enviada integra con el mismo formato en el cuerpo del mensaje.

Se entiende??

Gracias nuevamente por responder

- - - - - Mensaje combinado - - - - -

Hola Salvador.

Gracias por el adjunto.

Como le dije a Febrero, es muy bueno el programa, pero ahi lo que hago es ADJUNTAR cualquier tipo de archivo y enviarlo.

El cuerpo del mensaje a ser enviado por email (en tu ejemplo) es solamente "Saludos" y yo necesito enviar una tabla entera pero insertada en el cuerpo del email, no como adjunto.

Se entiende?

Muchas gracias por la respuesta!

Enlace a comentario
Compartir con otras webs

Hola Dragonniko:

La verdad es que me suena haber utilizado una macro con lo que propones, pero no la encuentro en mi ordenador.

Pero he encontrado esto https://www.ayudaexcel.com/foro/macros-programacion-vba-10/insertar-tabla-correo-no-como-adjunto-23146/, que quizás sea lo que necesitas. No lo he probado porque en casa no tengo Outlook. Ya nos contarás.

Saludos.

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.