Macro para Enviar imagen en cuerpo de correo

Estoy haciendo una macro para que envié un rango de celdas por outlook, esto ya lo tengo pero quiero que también me envié una imagen, esta imagen la pego en la misma hoja desde Impr.Pant o utilizando recortes. Espero me puedan ayudar a completar la macro para que pueda enviar el rango de celdas junto con la imagen que pego en la hoja. De antemano gracias por su atención.

Esta es la macro que estoy utilizando

Sub EnviarMailCuerpoMensaje()

Dim Resp As Byte
Resp = MsgBox("Desea continuar con el envio del mail?", _
vbQuestion + vbYesNo, "EXCELeINFO")
If Resp = vbYes Then
MsgBox "Se eligió continuar...", vbExclamation, "EXCELeINFO"
'
Else
MsgBox "Se eligió cancelar...", vbCritical, "EXCELeINFO"
Exit Sub
End If
Dim a As Worksheet
Dim srang As Range
Dim name, TD As String
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False

TD = Format(Date, "dd/mm/yyyy")
Path = ThisWorkbook.Path & "\"
fn = Worksheets("Saldos Factoraje CEMEX, S.A.B.").name
mydoc = Path & fn & ".pdf"

Sheets(fn).Range("A7:D9").Copy
Workbooks.Add
Cells(1, 1).PasteSpecial xlPasteValues
Cells(1, 1).PasteSpecial xlPasteFormats
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
mydoc, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
ActiveWorkbook.Close False

Set a = Worksheets("Saldos Factoraje CEMEX, S.A.B.")
nom = a.name
Set srang = a.Range("A7:D9")
With srang
.Parent.Select
.Select
ActiveWorkbook.EnvelopeVisible = True
With .Parent.MailEnvelope
.Introduction = "Buenas tardes," + vbCrLf + "Envío cifras de la operación de factoraje con nuestro cliente CEMEX, S.A.B. DE C.V. Al día de hoy " & TD & "." + vbCrLf + "Saludos."
With .Item
.To = "[email protected]"
.CC = "[email protected];[email protected];[email protected]"
.Subject = "" & nom & ""
.Send
End With
End With
End With
If Err.Number = 0 Then
a.Select
Kill mydoc
MsgBox ("El mail se envió con éxito"), vbInformation, "AVISO:)"
Else
MsgBox "Se produjo el siguiente error: " & Err.Description, vbCritical, "Error nro " & Err.Number
End If
ActiveWorkbook.EnvelopeVisible = False
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

1 Respuesta

Respuesta
1

Revisa las siguientes respuestas, ahí explico como poner una imagen en un correo.

Primero tienes que guardar tu imagen como un archivo .jpg o .gif o .png

Ya que tienes la imagen en un archivo la tienes que insertar en el correo pero con HTML

Envío de emal por Outlook desde excel

¿Como agregar mi firma de correo de Outlook a una macro?

Usar Firma de Outlook ya establecida

Hola Dante Amor, agradezco tu pronta respuesta, lo que veo en los ejemplos que mencionas es que debo guardar la imagen para después agregarla al cuerpo del correo con la macro. No se si sea posible que en lugar de eso yo haga la captura de pantalla o bien por medio de un recorte pegue la imagen en la hoja de Excel y posteriormente se envié el rango de celdas junto con la imagen. 

Después de esta línea:

.Subject = "" & nom & ""

Agrega estas líneas:

Application.SendKeys "^v", True
DoEvents

sal u dos

Agregue las líneas que mencionas y si me envía el mail con el rango de celdas pero sigue sin enviar la imagen, estaré haciendo lago mal el código que utilizo es que te puse al principio de mi pregunta.

Eso de copiar y pegar en outlook es algo inestable, depende de la memoria, la velocidad, las aplicaciones que tengas abiertas, etc. Por eso te recomendaba enviar la imagen en un archivo adjunto.

Prueba con lo siguiente, cambia en timevalue("00:00:01") por timevalue("00:00:03") segundos para ver si abre el correo y pega la imagen de celdas. O prueba con 5 segundos

With .Item
    .To = "damor"
    '.CC = "[email protected];[email protected];[email protected]"
    .Subject = "" & nom & ""
    'aquí se pegan el rango de celdas copiados
    Application. Wait Now() + TimeValue("00:00:01")
    Application.SendKeys "^v", True
    DoEvents
    . Display
    . Send
End With

Si no lo hace tendrás que cambia a Html, exportar las celdas como imagen y adjuntar el archivo, al adjuntar el archivo como viene explicado en los enlaces , lo adjunta en el cuerpo del correo como imagen, no lo adjunta como archivo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas