Usar Firma de Outlook ya establecida
Dante Amor
Tengo una macro en excel que envía correos desde outlook, el problema que se me presenta es que no envía firmas, me gustaría saber si hay un código que elija entre las firmas que ya se tienen establecidas de manera corporativa en outlook una de ellas y se puede decidir a que correo enviar una forma u otra
1 Respuesta
En realidad no he encontrado la opción para que la macro elija una de las firmas. Lo que puedes hacer es enviar la firma que tienes por defecto.
Revisa los siguientes enlaces:
¿Como hago para enviar correos con mi firma de outlook mediante una macro con los datos en excel?
Enviar mail desde excel con una firma y adjuntos
Sal u dos
Tienes que poner tu código para enviar en Html y al final tienes que poner una línea como esta:
dam.HtmlBody = cuerpo & dam.HtmlBody 'Con esta parte se agre la firma
Ahí en las respuestas está explicado
cual es mi error ya que no pone la firma
'
'---
'***Macro Para enviar correos
col = Range("I1").Column
'ruta = ThisWorkbook.Path & "C:\Users\Pedro Juarez\Documents\Pedro\Diestro\Diestro\2018"
For i = 7 To Range("B" & Rows.Count).End(xlUp).Row
Set dam = CreateObject("Outlook.Application").CreateItem(0)
'
dam.To = Range("B" & i).Value 'Destinatarios
dam.Cc = Range("C" & i).Value 'Con copia
dam.Bcc = Range("D" & i).Value 'Con copia oculta
dam.Subject = Range("E" & i).Value '"Asunto"
dam.Body = Range("F" & i) & Range("g" & i).Value '"Cuerpo del mensaje"
dam.HTMLBody = Body & dam.HTMLBody
'dam.Display
For j = col To Cells(i, Columns.Count).End(xlToLeft).Column
archivo = Cells(i, j).Value
If archivo <> "" Then dam.Attachments.Add archivo
Next
dam.Send 'El correo se envía en automático
'dam.Display 'El correo se muestra
Next
MsgBox "Correos enviados", vbInformation, "SALUDOS"
End Sub
La instrucción es para enviar un simple saludo en texto como "Saludos cordiales".
Lo que tú tienes es una imagen. Para eso debes crear tu logo como un archivo de imagen, por ejemplo un archivo jpg.
Revisa el siguiente ejemplo:
En el código:
dam.Attachments.Add ruta & logo dam.htmlbody = _ "<HTML> " & _ "<BODY>" & _ "<P>" & Cuerpo & "</P>" & _ "<img src=cid:" & logo & " height=40 width=40>" & _ "<br>" & "<b>" & [I2] & "</b>" & _ "<br>" & [J2] & _ "<br>" & [K2] & _ "</BODY> " & _ "</HTML>" & Dam.htmlbody
Esta línea es para poner la imagen en el cuerpo:
"<img src=cid:" & logo & " height=40 width=40>" & _
Según la documentación de Html y lo que he investigado, es con esa línea que se pone la imagen en el cuerpo del correo. A mi me funciona y como ya viste en los otros enlaces, también les funciona. Tal vez sea un problema con tus versiones de excel y outlook.
Escribe todo tu código actualizado para revisarlo.
Ya logre que lo pegue ahora el problema es que nos se muestra la imagen solo se ve el icono TT
Sub Enviar_Correos()
'---
'
'---
'***Macro Para enviar correos
col = Range("I1").Column
ruta = ThisWorkbook.Path & "\"
'ruta = ThisWorkbook.Path & "C:\Users\Pedro Juarez\Documents\Pedro\Diestro\Diestro\2018"
For i = 7 To Range("B" & Rows.Count).End(xlUp).Row
Set dam = CreateObject("Outlook.Application").CreateItem(0)
'
dam.To = Range("B" & i).Value 'Destinatarios
dam.Cc = Range("C" & i).Value 'Con copia
dam.Bcc = Range("D" & i).Value 'Con copia oculta
dam.Subject = Range("E" & i).Value '"Asunto"
dam.Body = Range("F" & i) & Range("g" & i).Value '"Cuerpo del mensaje"
'dam.htmlbody = Body & dam.htmlbody
'dam.Display
For j = col To Cells(i, Columns.Count).End(xlToLeft).Column
archivo = Cells(i, j).Value
If archivo <> "" Then dam.Attachments.Add archivo
Next
logo = "Firma Nueva Imagen .png"
dam.Attachments.Add ruta & logo
dam.htmlbody = _
"<HTML> " & _
"<BODY>" & _
"<P>" & Cuerpo & "</P>" & _
"<br>" & "<b>" & [I2] & "</b>" & _
"<br>" & [J2] & _
"<br>" & [K2] & _
"</BODY> " & _
"</HTML>" & dam.htmlbody & _
"<img src=cid:" & logo & " height=40 width=40>"
dam.Display 'El correo se muestra
dam.send 'El correo se envía en automático
' dam.send 'El correo se envía en automático
'dam.Display 'El correo se muestra
Next
MsgBox "Correos enviados", vbInformation, "SALUDOS"
End Sub
Ayudemos un poco al código, cambia el nombre del archivo a uno sin espacios, por ejemplo "firma.png"
Te anexo el código actualizado, puse la línea dentro del Body de Html
Sub Enviar_Correos() '--- ' Por Dante Amor '--- '***Macro Para enviar correos col = Range("I1").Column ruta = ThisWorkbook.Path & "\" 'ruta = ThisWorkbook.Path & "C:\Users\Pedro Juarez\Documents\Pedro\Diestro\Diestro\2018" For i = 7 To Range("B" & Rows.Count).End(xlUp).Row Set dam = CreateObject("Outlook.Application").CreateItem(0) ' dam.To = Range("B" & i).Value 'Destinatarios dam.Cc = Range("C" & i).Value 'Con copia dam.Bcc = Range("D" & i).Value 'Con copia oculta dam.Subject = Range("E" & i).Value '"Asunto" dam.Body = Range("F" & i) & Range("g" & i).Value '"Cuerpo del mensaje" 'dam.htmlbody = Body & dam.htmlbody 'dam.Display For j = col To Cells(i, Columns.Count).End(xlToLeft).Column archivo = Cells(i, j).Value If archivo <> "" Then dam.Attachments.Add archivo Next logo = "Firma.png" dam.Attachments.Add ruta & logo dam.htmlbody = _ "<HTML> " & _ "<BODY>" & _ "<P>" & Cuerpo & "</P>" & _ "<br>" & "<b>" & [I2] & "</b>" & _ "<br>" & [J2] & _ "<br>" & [K2] & _ "<img src=cid:" & logo & " height=40 width=40>" & _ "</BODY> " & _ "</HTML>" & dam.htmlbody dam.Display 'El correo se muestra dam.send 'El correo se envía en automático Next MsgBox "Correos enviados", vbInformation, "SALUDOS" End Sub
En la misma línea, ajusta el 40 para aumentar o disminuir el tamaño de la imagen.
"<img src=cid:" & logo & " height=40 width=40>"
.
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
.
Feliz Año 2018
.
Hola antes que nada agradezco tu apoyo, ya logre lo que deseaba, ahora solo quisiera saber si al texto que incluyo le puedo dar formato "
<img src=cid:" & logo & " height=130 width=390>" & _
"<br>" & Range("h" & i).Value ''''' Que este texto tuviera formato
Saludos
El texto se puede dar formato con el mismo código de Html
Revisa estas respuestas:
Macro para colocar negrita y resaltar parte del texto de un correo en Outlook
Dejar espacios en el texto de un correo de outlook
Macro para cambiar el tipo de fuente del mensaje de un correo de outlook
También revisa esto para poner 2 imágenes en el cuerpo del correo
Seguramente tengo más respuestas sobre el tema, ahí podrás encontrar más ejemplos.
Valora esta respuesta. Si necesitas ayuda para adaptar el código, crea una nueva pregunta y con todo gusto te sigo ayudando.
- Compartir respuesta
Hola y muchas gracias por el aporte y la explicación solo me queda una duda, con este código se envía la imagen pero ya no se puede adjuntar? - Pachon0812 .
Revisa los enlaces, ahí explico cómo adjuntar imagen y archivos. - Dante Amor