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

Respuesta
3

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

Hola gracias por tu tiempo el código que mencionas no adjunta la firma que tengo en out look 

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

Entra a outlook y revisa la firma que tienes. Imprime la pantalla y me la muestras

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:

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

ya realice el otro ejemplo pero la imagen la pone como adjunto y no en el cuerpo del correo

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

Tengo un problema con esta macros quiero que me copie más de una firma en el cuerpo de un correo (Outlook)

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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas