Insérer un lien hypertexte dans un mail envoyé par VBA

creator3_1969 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai fait plusieurs recherches et plein d'essais mais je n'arrive malheureusement pas à insérer un lien hypertexte dans mon corps de mail qui serait envoyé automatiquement.

J'ai eu soit le chemin d'accès qui se met, soit le nom mais plus le chemin ou alors le chemin et le nom mais pas en lien.

Je suis sûr que c'est une "connerie" mais je bloque….

Pouvez-vous m'aider ?

merci beaucoup

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> Ci-dessous le lien vers l'annexe qui a été crée : "".</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 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, il me semble que tu n'utilises pas la variable lien.
    as-tu examiné le contenu de la variable corps?
    0
  2. creator3_1969 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour,

    merci pour la réponse.

    J'ai modifié le code pour que le corps du message affiche bien le fichier créé mais pas moyen de faire en sorte que le mot "lien" soit sous forme de lien le reflet du fichier indiqué par csPath1 & Myname.

    Merci
    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> Ci-dessous le lien vers l'annexe qui a ?t? cr?e : "".</p>"
    corps = corps & csPath1
    corps = corps & Myname
    lien = csPath1 & Myname
    corps = corps & "<a href=""csPath1 & Myname"">lien</a></p>"

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

    MonMessage.HTMLBody = corps
    MonMessage.display "true"

    End Sub
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      peux-tu utiliser les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

      que reçois-tu comme texte dans le mail?

      je suggère que tu commences avec des programmes VBA plus simples.
      0
  3. creator3_1969 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
     
    Ho pardon, j'étais persuadé d'avoir utilisé l'onglet code….

    voici ci-dessous ce qui s'affiche :

    Bonjour,
    Ci-dessous le lien vers l'annexe qui a été crée : ".
    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 = "Annexe facture"
      
        corps = corps & "Bonjour,"
        corps = corps & "<p>"
        corps = corps & "<p> Ci-dessous le lien vers l'annexe qui a ?t? cr?e : "".</p>"
        corps = corps & csPath1
        corps = corps & Myname
        lien = csPath1 & Myname
        corps = corps & "<a href=""csPath1 & Myname"">lien</a></p>"
      
        corps = corps & "</BODY></HTML>"
      
      MonMessage.HTMLBody = corps
      MonMessage.display "true"
      
    
    End Sub
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      et quand tu cliques sur le lien, que vois-tu?

      pour t'aider à comprendre ce que tu fais, je suggère de remplacer
      corps = corps & "<a href=""csPath1 & Myname"">lien</a></p>"

      par
      dim url as string
      url= "<a href=""csPath1 & Myname"">lien</a>"
      corps = corps & url & "</p>"
      msgbox url

      que vois-tu quand tu exécutes cela?
      0
      1. creator3_1969 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonsoir,

        J'essayerai cela demain matin et je te reviens dès que je l'aurai intégré à mon code.

        Merci
        Laurent
        0
  4. creator3_1969 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonsoir,

    Voici ce qui s'affiche lorsque j'ai remplacé la partie du code.


    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> Ci-dessous le lien vers l'annexe qui a ?t? cr?e : "".</p>"
        corps = corps & csPath1
        corps = corps & Myname
        'lien = csPath1 & Myname
        'corps = corps & "<a href= lien & csPath1>""clique ici""</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 Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      ne vois-tu pas que tu n'utilises pas les variables quand tu écris
      url = "<a href=""csPath1 & Myname"">lien</a>"

      il est préférable de faire:
      url = "<a href=" + csPath1 + Myname + ">lien</a>"
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. creator3_1969 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonsoir,

    Voilà j'ai finalement trouvé pour que tout fonctionne :-)

    Voilà ce que cela donne avant que j'achève de modifier le code pour que le mail s'envoie automatiquement.

    Ci-dessous le code, cela pourra servir.

    Merci de ton aide !

    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 Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      parfait, peux-tu marquer la discussion comme résolue?
      0