.
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.
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);
}
}
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
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
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
.
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