Insertar un enlace hipertexto en un correo enviado por VBA

creator3_1969 Mensajes publicados 13 Fecha de registro   Estado Miembro Última intervención   -  
yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   -
Bonjour,

He hecho varias investigaciones y muchos intentos, pero lamentablemente no puedo insertar un hipervínculo en el cuerpo de mi correo electrónico que se enviará automáticamente.

He tenido o bien la ruta de acceso que se coloca, o bien el nombre, pero nunca la ruta o el nombre, o la ruta y el nombre pero no en enlace.

Estoy seguro de que es una "tontería", pero estoy atascado....

¿Puede ayudarme?

Muchas gracias

Sub SendMailhyperlink() Dim lien As String Dim csPath1 As String Dim Myname As String Dim MonOutlook As Object Dim MonMessage As Object csPath1 = "P:\Finance Department\Finance_Transport\Test_PAS_TOUCHE_LAURENT\" Myname = ("ANNEXE_BPOST_MINI_PACK_SCAN") & "_" & Sheets("MAIN MINI PACK SCAN").Range("C4") & "_" & Sheets("Annexe Transport").Range("L5") & "_" & Sheets("Annexe Transport").Range("M5") ' & "_" & Format(Date, "mmmm_yyyy") lien = csPath1 & Myname Set MonOutlook = CreateObject("Outlook.Application") Set MonMessage = MonOutlook.CreateItem(0) MonMessage.BodyFormat = 2 corps = "<HTML><BODY>" MonMessage.To = "xxx@xxx.com" MonMessage.cc = "" MonMessage.Subject = "Annexe facture" corps = corps & "Bonjour," corps = corps & "<p>" corps = corps & "<p> A continuación el enlace a la anexión que se ha creado: "".</p>" corps = corps & "<a href=lien>lien</a></p>" corps = corps & "</BODY></HTML>" MonMessage.HTMLBody = corps MonMessage.display "true" End Sub<code basic>
</code>

5 respuestas

  1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   Ambassadeur 1 588
     
    Hola, me parece que no estás utilizando la variable enlace.
    ¿Has examinado el contenido de la variable cuerpo?
    0
  2. creator3_1969 Mensajes publicados 13 Fecha de registro   Estado Miembro Última intervención  
     
    Bonjour,

    gracias por la respuesta.

    He modificado el código para que el cuerpo del mensaje muestre el archivo creado, pero no hay manera de hacer que la palabra "lien" sea un enlace que refleje el archivo indicado por csPath1 & Myname.

    Gracias
    Laurent

    Sub SendMailhyperlink()

    Dim lien As String
    Dim csPath1 As String
    Dim Myname As String
    Dim MonOutlook As Object
    Dim MonMessage As Object

    csPath1 = "P:\Finance Department\Finance_Transport\Test_PAS_TOUCHE_LAURENT\"
    Myname = ("ANNEXE_BPOST_MINI_PACK_SCAN") & "_" & Sheets("MAIN MINI PACK SCAN").Range("C4") & "_" & Sheets("Annexe Transport").Range("L5") & "_" & Sheets("Annexe Transport").Range("M5") ' & "_" & Format(Date, "mmmm_yyyy")
    lien = csPath1 & Myname

    Set MonOutlook = CreateObject("Outlook.Application")
    Set MonMessage = MonOutlook.CreateItem(0)

    MonMessage.BodyFormat = 2

    corps = "<HTML><BODY>"

    MonMessage.To = "xxx@xxx.com"

    MonMessage.cc = ""
    MonMessage.Subject = "Annexe facture"

    corps = corps & "Bonjour,"
    corps = corps & "<p>"
    corps = corps & "<p> A continuación el enlace hacia el anexo que ha sido creado: "".</p>"
    corps = corps & csPath1
    corps = corps & Myname
    lien = csPath1 & Myname
    corps = corps & "<a href=""" & lien & "">lien</a></p>"

    corps = corps & "</BODY></HTML>"

    MonMessage.HTMLBody = corps
    MonMessage.display "true"

    End Sub
    0
  3. creator3_1969 Mensajes publicados 13 Fecha de registro   Estado Miembro Última intervención  
     
    Lo siento, estaba convencido de haber utilizado la pestaña de código….

    A continuación se muestra lo que aparece:

    Hola,
    A continuación el enlace a la anexión que ha sido creada: ".
    P:\Finance Department\Finance_Transport\Test_PAS_TOUCHE_LAURENT\ANNEXE_BPOST_MINI_PACK_SCAN_195103931_12_2019lien

    Sub SendMailhyperlink() Dim lien As String Dim csPath1 As String Dim Myname As String Dim MonOutlook As Object Dim MonMessage As Object csPath1 = "P:\Finance Department\Finance_Transport\Test_PAS_TOUCHE_LAURENT\" Myname = ("ANNEXE_BPOST_MINI_PACK_SCAN") & "_" & Sheets("MAIN MINI PACK SCAN").Range("C4") & "_" & Sheets("Annexe Transport").Range("L5") & "_" & Sheets("Annexe Transport").Range("M5") ' & "_" & Format(Date, "mmmm_yyyy") lien = csPath1 & Myname Set MonOutlook = CreateObject("Outlook.Application") Set MonMessage = MonOutlook.CreateItem(0) MonMessage.BodyFormat = 2 corps = "<HTML><BODY>" MonMessage.To = "xxx@xxx.com" MonMessage.cc = "" MonMessage.Subject = "Anexo factura" corps = corps & "Hola," corps = corps & "<p>" corps = corps & "<p> A continuación el enlace a la anexión que ha sido creada: "".</p>" corps = corps & csPath1 corps = corps & Myname lien = csPath1 & Myname corps = corps & "<a href=""csPath1 & Myname"">enlace</a></p>" corps = corps & "</BODY></HTML>" MonMessage.HTMLBody = corps MonMessage.display "true" End Sub
    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      ¿Y cuando haces clic en el enlace, qué ves?

      Para ayudarte a entender lo que estás haciendo, sugiero reemplazar
      cuerpo = cuerpo & "<a href=""csPath1 & Myname"">enlace</a></p>"

      por
      dim url as string url= "<a href=""csPath1 & Myname"">enlace</a>" cuerpo = cuerpo & url & "</p>" msgbox url

      ¿qué ves cuando ejecutas esto?
      0
      1. creator3_1969 Mensajes publicados 13 Fecha de registro   Estado Miembro Última intervención   > yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención  
         
        Buenas noches,

        Intentaré eso mañana por la mañana y te volveré a contactar tan pronto como lo haya integrado en mi código.

        Gracias
        Laurent
        0
  4. creator3_1969 Mensajes publicados 13 Fecha de registro   Estado Miembro Última intervención  
     
    Buenas noches,

    Esto es lo que aparece cuando he reemplazado la parte del código.


    Sub SendMailhyperlink() Dim lien As String Dim csPath1 As String Dim Myname As String Dim MonOutlook As Object Dim MonMessage As Object Dim url As String csPath1 = "P:\Finance Department\Finance_Transport\Test_PAS_TOUCHE_LAURENT\" Myname = ("ANNEXE_BPOST_MINI_PACK_SCAN") & "_" & Sheets("MAIN MINI PACK SCAN").Range("C4") & "_" & Sheets("Annexe Transport").Range("L5") & "_" & Sheets("Annexe Transport").Range("M5") ' & "_" & Format(Date, "mmmm_yyyy") 'lien = csPath1 & Myname Set MonOutlook = CreateObject("Outlook.Application") Set MonMessage = MonOutlook.CreateItem(0) MonMessage.BodyFormat = 2 corps = "<HTML><BODY>" MonMessage.To = "xxx@xxx.com" MonMessage.cc = "" MonMessage.Subject = "Annexe facture" corps = corps & "Bonjour," corps = corps & "<p>" corps = corps & "<p> A continuación el enlace hacia el anexo que ha sido creado: "".</p>" corps = corps & csPath1 corps = corps & Myname 'lien = csPath1 & Myname 'corps = corps & "<a href= lien & csPath1>""haz clic aquí""</a></p>" url = "<a href=""csPath1 & Myname"">lien</a>" corps = corps & url & "</p>" corps = corps & "</BODY></HTML>" MsgBox url MonMessage.HTMLBody = corps MonMessage.Display "true" End Sub
    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      ¿No ves que no estás utilizando las variables cuando escribes
      url = "<a href=""csPath1 & Myname"">lien</a>"

      es preferible hacer:
      url = "<a href=" + csPath1 + Myname + ">lien</a>"
      0
  5. creator3_1969 Mensajes publicados 13 Fecha de registro   Estado Miembro Última intervención  
     
    Buenas noches,

    Finalmente he encontrado la manera para que todo funcione :-)

    Aquí tienes lo que da antes de que termine de modificar el código para que el correo se envíe automáticamente.

    A continuación el código, podría ser útil.

    ¡Gracias por tu ayuda!

    Laurent



    Sub SendMailhyperlink() Dim lien As String Dim csPath1 As String Dim Myname As String Dim MonOutlook As Object Dim MonMessage As Object Dim url As String csPath1 = "P:\Finance Department\Finance_Transport\Test_PAS_TOUCHE_LAURENT\" Myname = ("ANNEXE_BPOST_MINI_PACK_SCAN") & "_" & Sheets("MAIN MINI PACK SCAN").Range("C4") & "_" & Sheets("Annexe Transport").Range("L5") & "_" & Sheets("Annexe Transport").Range("M5") & ".xlsm" ' & "_" & Format(Date, "mmmm_yyyy") Set MonOutlook = CreateObject("Outlook.Application") Set MonMessage = MonOutlook.CreateItem(0) MonMessage.BodyFormat = 2 corps = "<HTML><BODY>" MonMessage.To = "xxx@xxx.com" MonMessage.Subject = "Annexe facture " & Myname corps = corps & "Bonjour," corps = corps & "<p>" corps = corps & "L'annexe ci-apr?s a ?t? cr?? : " & Myname corps = corps & "<p>" corps = corps & "Ci-dessous vous trouverez le lien pour y avoir directement acc?s." corps = corps & "<p>" lien = csPath1 & Myname corps = corps & "<p>" corps = corps & "<b><A HREF=""" & lien & """> lien </A></b>" corps = corps & "<p>" corps = corps & "Le fichier s'ouvrira sur votre page Annexe Finance." corps = corps & "<p>" corps = corps & "Bien ? vous," corps = corps & "<p>" corps = corps & "Laurent," corps = corps & "</BODY></HTML>" MonMessage.HTMLBody = corps MonMessage.Display "true"
    0
    1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
       
      parfait, ¿puedes marcar la conversación como resuelta?
      0