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

Fermé
creator3_1969 Messages postés 13 Date d'inscription vendredi 25 janvier 2019 Statut Membre Dernière intervention 9 avril 2020 - 7 avril 2020 à 12:37
yg_be Messages postés 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024 - 9 avril 2020 à 18:26
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 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024 Ambassadeur 1 552
7 avril 2020 à 14:06
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 vendredi 25 janvier 2019 Statut Membre Dernière intervention 9 avril 2020
7 avril 2020 à 16:45
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 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024 1 552
Modifié le 7 avril 2020 à 17:05
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 vendredi 25 janvier 2019 Statut Membre Dernière intervention 9 avril 2020
7 avril 2020 à 17:15
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 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024 1 552
Modifié le 7 avril 2020 à 17:25
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 vendredi 25 janvier 2019 Statut Membre Dernière intervention 9 avril 2020 > yg_be Messages postés 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024
7 avril 2020 à 17:41
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 vendredi 25 janvier 2019 Statut Membre Dernière intervention 9 avril 2020
9 avril 2020 à 17:11
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 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024 1 552
9 avril 2020 à 17:18
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 vendredi 25 janvier 2019 Statut Membre Dernière intervention 9 avril 2020
9 avril 2020 à 18:19
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 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024 1 552
9 avril 2020 à 18:26
parfait, peux-tu marquer la discussion comme résolue?
0