Jump to content
Sign in to follow this  
jermmy

[Solucionado] Insertar una imagen en el cuerpo de un correo

Recommended Posts

Quiero hacer una macro que me inserte una imagen en el cuerpo del correo que estoy creando, pero esa imagen no lo puedo linkar lo tengo que añadir de otra forma , ya que este correo se lo tengo que mandar a otra persona y si lo linko no va a tener posibilidad de verlo, y es necesario que lo vea!, la macro me hace los correos desde una lista que tengo en la columna A, pero mi firma(outlook) es una imagen en jpg y por ley tiene que ir al final del mensaje, solo eso es lo que me falta, el resto lo hace todo bien.

Este el el codigo que llevo hasta el momento

Sub OutlookMailExcel()

Dim OutApp As Object

Dim OutMail As Object

Dim ultFil As Long

Dim nfil As Long

'Ultima fila usada

ultFil = Range("A:A").Find("*", , , , , xlPrevious).Row

'Outlook

Set OutApp = CreateObject("Outlook.Application")

OutApp.Session.logon

'Bucle para enviar emails

For i = 2 To ultFil

If Cells(i, "A") <> Empty Then

'Crea el correo

Set OutMail = OutApp.CreateItem(0)

With OutMail

.SentOnBehalfOfName = "aqui va el correo que quiero a nombre de quien lo mande(manejo varias cuentas)"

.to = Cells(i, "A").Value

.Subject = "Aqui va el nombre del asunto"

.Body = "aqui va el mensaje"

.Display

End With

End If

Next i

Set OutMail = Nothing

Set OutApp = Nothing

End Sub

Trate de hacer el mensaje con el htmlbody pero a la hora que les llega el correo a los demas no les muestra la imagen porque esta direccionada a un directorio de mi compu y logicamente la otra persona(s) no la tienen.

Si me podeis proporcionar algo de codigo os lo agradeceria!

en serio me urge esto, y ya llevo mucho tiempo leyendo y no e podido. Agradesco la ayuda que me puedan brindar.

Gracias

Share this post


Link to post
Share on other sites

Hola:

Envia la hoja "Hoja1" por e_mail.

Worksheets("Hoja1").Activate

With ActiveSheet.MailEnvelope
.Introduction = "Te adjunto la información que me solicitaste." & vbCrLf
.Item.To = "username@server.com" 'Destinatario
.Item.Subject = "Asunto"
.Item.Send 'Enviamos el e_mail
End With

End Sub[/CODE]

La hoja, se envía exactamente igual a como la ves, con dibujos, imágenes,...

Este método, no permite adjuntos.

Salu2. Antoni.

Share this post


Link to post
Share on other sites

Agradesco tu ayuda, lo que necesito es agregar una imagen al final del cuerpo del correo, no toda la hoja, ya que mi firma es una imagen en jpg, puedo agregarla a excel, o decirle que la agarre desde cierta ubicacion, pero no se como insertarla al final del mensaje, si tengo 25 correos, tengo que ir uno por uno agregando mi firma(imagen al final) en outlook. no se si se puede asignar un nombre de una variable a una imagen???? no importa que este en el archivo de excel, nada mas la coloco donde no se vea, no se como hacerlo.....

ayuda........

PD: De todas maneras este codigo esta muy bueno..

Share this post


Link to post
Share on other sites

Hola jermmy

Como ya tienes la macro que genera el envio, entonces activa lo siguiente...

Hasta donde se Outlook, tiene la opcion de insertar la firma, ya sea a un mensaje nuevo, responder o responder a todos, activa esa opcion, espero comprendas a que me refiero

Saludos

Share this post


Link to post
Share on other sites

Gracias por responder, si esa opcion esta activada, la de nuevo y responder, cuando creo un correo desde outlook o respondo si me inserta la firma automaticamente. Pero no me sale la firma en el correo creado desde excel..

Share this post


Link to post
Share on other sites

Busca por el foro en unos de los aportes de mjrofra o Gerson Pineda-El Catracho, tocamos el tema del correo Outlook, donde usamos la funcion de "Dialogs", esa creo que te funcionaria, insiste buscando en el foro...

Saludos

Share this post


Link to post
Share on other sites

Compañeros talvez si lo planteo diferente, con el codigo que puso Antoni, manda todo lo de la hoja de excel, si solo pongo la imagen de la firma en una hoja y me ponga el mensaje de mi codigo antes se juntaria mi mensaje y mi firma pero pero a la hora de poner el resto de mi mensaje con los datos de las celdas da un error no si si alguien me puede ayudar fusinando los dos codigos el de antoni y el mio.

Share this post


Link to post
Share on other sites
Guest luigi

Hola a Todos:

Jermmy, podras adaptar este codigo de Mauricio(mjrofra) a la macro de Antoni para que te inserte la imagen en la hoja antes de enviarla, he adaptado el codigo para que lo coloque en la celda A1


Sub Copiarimg()

Dim pic As Picture

With ActiveSheet

Set pic = .Pictures.Insert("C:\Ruta de la Imagen.jpg")

With .Range("A1")
pic.Top = .Top
pic.Left = .Left
pic.Height = .Height
pic.Width = .Width
End With

End With

End Sub
[/CODE]

Esta sacado de este Tema

https://www.ayudaexcel.com/foro/f10/%5Bsolucionado%5D-pegar-imagen-gif-por-medio-de-macro-12179/#post58800

Prueba y comenta.

Saludos, Luis.

Share this post


Link to post
Share on other sites

Compañeros este codigo que me encontre si me agrega mi firma no importa cual sea en outlook pero no puedo agregar informacion al cuerpo del correo solo me pone la firma????????

Sub Mail_Text_From_Txtfile_Outlook()
' Is working in Office 2000-2010
Dim OutApp As Object
Dim OutMail As Object
Dim ultFil As Long
Dim nfil As Long

'Ultima fila usada
ultFil = Range("A:A").Find("*", , , , , xlPrevious).Row

'Outlook
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

'Bucle para enviar emails
For i = 2 To ultFil
If Cells(i, "A") <> Empty Then

On Error Resume Next
Set OutMail = OutApp.CreateItem(0)
With OutMail
.SentOnBehalfOfName = "jermmyr@gmail.com"
.To = "jermmyr@gmail.com"
.CC = ""
.BCC = ""
.Subject = "Confirmar"
.Body = GetBoiler("\")
.Display 'or use .Send
End With
On Error GoTo 0
End If[/CODE]

Y este va en otro modulo

[CODE]
Option Explicit

Function GetBoiler(ByVal sFile As String) As String
'Dick Kusleika
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.readall
ts.Close
End Function[/CODE]

No entiendo mucho el codigo pero podra hacersele algo pra que pueda insertar informacion???

Share this post


Link to post
Share on other sites

Hola jermmy

Intenta de la siguiente forma y nos platicas como te fue, estoy considerando que solo hay un adjunto y que dicho adjunto es la firma " el adjunto (1) osea con idice 1 es la firma.", usalo como ejemplo y adaptalo (ojalá que funcione)

Option Explicit

Sub OutlookMailExcel()
Dim OutApp As Object
Dim OutMail As Object
Dim ultFil As Long
Dim i As Long

'Ultima fila usada
ultFil = Range("A:A").Find("*", , , , , xlPrevious).Row

'Outlook
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.logon

'Bucle para enviar emails
For i = 2 To ultFil
If Cells(i, "A") <> Empty Then
'Crea el correo
Set OutMail = OutApp.CreateItem(0)
With OutMail
.SentOnBehalfOfName = "aqui va el correo que quiero a nombre de quien lo mande(manejo varias cuentas)"
.To = Cells(i, "A").Value
.Subject = "Aqui va el nombre del asunto"
'Archivo de imagen que contiene la firma
.Attachments.Add "C:\MiFirma.jpg"
.BodyFormat = 2 'olFormatHTML
.HTMLBody = "<html>" & _
"<body>" & _
"<p>Aqui va el mensaje que deseas enviar...</p>" & _
"<br>" & _
"<br>" & _
"<br>" & _
"<img src='cid:'" & .Attachments.Item(1).Filename & "' height=200 width=150>" & _
"</body>" & _
"</html>"

.Display
End With
End If

Next i

Set OutMail = Nothing
Set OutApp = Nothing

End Sub[/PHP]

Masters Antoni y Gerson es un gusto saludarlos por aca

Por cierto master Antoni .MailEnvelope si admite adjuntos, de hecho lo que se hace es mostrar la interfaz (modificando la propiedad para que sea visible), y dicha interfaz es como un outlook 'chiquito' que utiliza tanto word como excel para enviar mails. Si mal no recuerdo en un ejemplo que le elabore a dramidom en el foro, ejemplificamos como era posible mandar los datos de una hoja y tambien varios adjuntos, por ahi debe de andar el ejemplo.

saludos cordiales

Share this post


Link to post
Share on other sites

Siiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

Compañeros perdon pero pase un monton de tiempo tratando de solucionar esto y hasta que al fin, como la imagen va como archivo adjunto, si la muestra a la hora de que el receptor habra el mensaje, era justo lo que necesitaba, y en html, puedo modificar el mensaje a mi gusto. Sinceramente muchas gracias por ayudarme. Si en algo puedo ayudarles con gusto.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...

Important Information

Privacy Policy

Ayuda Excel - Madrid, Madrid, ES - Valorada por 5112 personas - Aprender Excel - Total: 4.7 / 5