Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como enviar mail con imagen tabla y firma en cuerpo del mensaje con Excel


.

Esta macro permite enviar un mail con una imagen o foto, tabla y firma en el cuerpo del mensaje desde Excel a traves de Outlook, anteriormente se mostraron muchas variantes entre otras se encuentran las siguientes:
Como enviar mail con hoja Excel en cuerpo del mensaje y PDF adjunto
Como enviar mail con Excel con un link, hiperlink, hipervinculo en el cuerpo del mensaje
Macro muestra alerta y envía mail a varios destinatarios
Como enviar Mail con Excel utilizando Gmail o Yahoo
Mas ejemplos en de envío de mail enviando mail con Excel.

Desde el final del post se puede descargar el ejemplo en forma gratuita sin ninguna restricción, el código se puede adaptar a cada necesidad, Aporta por favor para sostener el sitio si está dentro de tus posibilidades, desde ya muchas gracias.

Si te estás iniciando en la operación de Excel o requieres afirmar conocimientos, recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  
El vídeo verás la macro en acción con una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo Recorre fila buscando y comparando datos de dos columnas en hojas distintasbuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mail, trabajando con filas, celdas, columnas, rangos y muchos ejemplos más.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}

 

La macro tal como se anticipo permite con Excel utilizando Outlook enviar mail, con la particularidad que en el mismo cuerpo del mensaje es decir no va en archivo ardjunto, en este caso se envía una imagen guardada en nuestra PC, una tabla y una firma al final del mensaje.

Recomiendo descargar el ejemplo para su fácil comprensión, se descargará un archivo comprimido al descomprimir mantener el archivo con la macro y el de un archivo de imagen o JPG que se utiliza para enviar con el mail.

Para componer o crear el mail se apela al lenguaje HTML básico, en la variable sini se carga un texto o string que irá en el mensaje, se usa el siguiente código:

sini = «<Div><H3><B>Estimado enviamos resumen de productos comprados en nuestra empresa en el mes de referencia. </B></H3><br></Div>»

En el post macro que permite crear una tabla html a partir de una tabla de Excel se explicó en detalle como utilizar una macro para crear una tabla WEB, recomiendo echarle un vistazo.

La tabla es cargada en la variable, para ello se usa la siguiente variable que es resultado de aplicar una función para convertir una tabla de Excel en una tabla HTML.

stbl = «<Div> » & TableHTML & »  </Div>»


⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛

Quizá sea de utilidad también

Como enviar mail desde Excel adjuntando PDF

Como enviar mail con archivo Excel y PDF mediante Outlook con Excel

Formulario de VBA para insertar datos

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛

En la variable stima se guarda la dirección de la imagen que está en nuestra PC y sera enviada en el cuerpo del mail.

stima = «<Div> <IMG SRC=»»» & myfile & «»»><br><br></Div>»

En la variable spie se guarda o carga el valor del string que irá como firma en el mail, ver la codificación que está debajo ya que lo presentado en el renglón siguiente es un resumen.

spie = «<Div><B><FONT COLOR= «»red «» >PROGRAMAR EXCEL

Por último se concatenta todas las variables anteriores que contienen cadenas de texto o string, en la variable sbdy que en definitiva contiene una codificación HTML, que es lo que permite enviar el mail con imagen, tabla y firma en el cuerpo del mensaje.

El código que envía propiamente el mail es el siguiente, con lo anterior se estableció que debía ir escrito en el mensaje o cuerpo del mail.

With OMail

.To = Dest
.CC = Cop
.BCC = SCop
.Subject = Asun
‘.Attachments.Add rutapdf
‘.Display
.HTMLBody = sbdy
.Send
End With

Código que se inserta en un módulo

Sub EnviaMail()
Dim a As Worksheet, b As Worksheet
Dim OApp As Object, OMail As Object, sbdy As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
ChDir (ActiveWorkbook.Path)
‘myfile = Application.GetOpenFilename(«Archivos Excel (*.jp*), *.jp*»)
Dest = Range(«A13»)
Asun = «Enviamos resumen de Diciembre»
myfile = ActiveWorkbook.Path & «Grafico.jpg»

Set OApp = CreateObject(«Outlook.Application»)
Set OMail = OApp.CreateItem(0)

sini = «<Div><H3><B>Estimado enviamos resumen de productos comprados en nuestra empresa en el mes de referencia. </B></H3><br></Div>»
stbl = «<Div> » & TableHTML & »  </Div>»
stima = «<Div> <IMG SRC=»»» & myfile & «»»><br><br></Div>»
spie = «<Div><B><FONT COLOR= «»red «» >PROGRAMAR EXCEL <a href=»»http://programarexcel.com»»>Visit PROGRAMAR EXCEL.com</a> <a href=»»https://www.youtube.com/channel/UCTKYXi9ljxxOAXXKgwWDDpQ»»>Visit YOUTUBE CHANEL</a> </FONT> <br>  Lincoln Road Mall <br> Miami Beach <br> Florida, USA <br> <br>» & _
       «Tel: 99999999<br> Fax : 99999999 <br> Whatsapp : 99999999 <br> E -mail: marcrodos@yahoo.es <br><br><FONT COLOR=»» green «»> <FONT FACE= «»Webdings «» >P </FONT> Antes de imprimir este e-mail piense bien si es necesario hacerlo: El medioambiente es cosa de todos !</FONT><br><br>» & _
       «* * * * * * * * AVISO DE CONFIDENCIALIDAD * * * * * * * * * * <br><br>Este mensaje de correo electrónico y sus anexos (si los hay) están destinados exclusivamente para el uso del destinatario del mismo, y como tal, siguen siendo propiedad de PROGRAMAR EXCEL.COM. Este mensaje y los archivos adjuntos (si los hay) pueden contener información que es confidencial, privilegiada y exenta de divulgación en virtud de la ley aplicable. Si usted no es el destinatario de este mensaje, se le prohíbe la lectura, divulgación, reproducción, distribución, difusión o utilización de cualquier forma esta transmisión. La entrega de este mensaje a cualquier persona que no sea el destinatario no tiene la intención de renunciar a cualquier derecho o privilegio. Si usted ha recibido este mensaje por error, por favor notifique inmediatamente al remitente por e-mail y elimine de inmediato este mensaje de su sistema.</Div>»
sbdy = sini & vbNewLine & vbNewLine & vbNewLine & vbNewLine & vbNewLine
sbdy = sbdy & vbNewLine & vbNewLine & stbl ‘& vbNewLine & vbNewLine
sbdy = sbdy & vbNewLine & stima & vbNewLine & vbNewLine
sbdy = sbdy & spie

With OMail
.To = Dest
.CC = Cop
.BCC = SCop
.Subject = Asun
.Attachments.Add rutapdf
.Display
.HTMLBody = sbdy
.Send
End With
Set OMail = Nothing
Set OApp = Nothing

Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox («El mensaje se envió con éxito»), vbInformation, «AVISO»
End Sub

Function TableHTML() As String
Dim col As Long, fil As Long
canfil = ActiveSheet.UsedRange.Rows.Count
cancol = ActiveSheet.UsedRange.Columns.Count
stable = «<Div><table>»
For f = 1 To canfil
stable = stable & «<tr>»
    For c = 1 To cancol
        stable = stable & «<td>» & Cells(f, c) & » </td>»
    Next c
    stable = stable & «</tr>»
Next f
stable = stable & «</table> <br><br><br><br><br></Div>»
TableHTML = stable
End Function

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends