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 23541 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>
A voir également:

5 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, il me semble que tu n'utilises pas la variable lien.
as-tu examiné le contenu de la variable corps?
0
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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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
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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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
creator3_1969 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 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
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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

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