Envoi mail : hyperlien ne fonctionne pas (coupé avant la fin)

Bonjour,

J'ai un problème avec une macro qui fonctionnait parfaitement bien en condition de test mais plus en condition réelle.

Le but est simplement d'envoyer un mail via Outlook et ce mail contient un lien afin d'accéder au document cité dans le mail. Le problème est que l'adresse du document est systématiquement coupé malgré le fait que cette dernière soit 100% fonctionnelle.

Sub Mail_Outlook_Relance_Action(ByVal reference_action As String, ByVal destinataire As String, ByVal description_origine As String, ByVal description_action As String, ByVal statut_action As String, ByVal delai_realisation As Date)
    Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String
    Dim localisation As String

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    localisation = "\\serveur10001\blabla\blabla\blabla\blabla\01 TEST\0 - ESSAI"

    strbody = "Bonjour," & _
              "<br>Votre action " & reference_action & " n'est pas encore clôturée.<br>" & _
              "<br><b><u>Description de l'origine de l'action :</u></b> " & "<br>" & description_origine & _
              "<br><br><b><u>Description de l'action : </u></b>" & "<br>" & description_action & _
              "<br><br><b><u>Statut de l'action : </u></b>" & "<br>" & statut_action & _
              "<br><br><b><u>Délai de réalisation : </u></b>" & "<br>" & delai_realisation & _
              "<br><br>Vous pouvez mettre à jour votre action vous-même en " & "<a href=" & localisation & "> cliquant-ici</a>" & _
              "<br><br>Cordialement" & _
              "<br><br>"

    On Error Resume Next

    With OutMail
        .To = destinataire
        '.CC =
        .Subject = "Action" & reference_action & " non clôturée"
        .HTMLBody = strbody
        '.Display
        .Send
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

Lorsque je lance la macro, le mail s'envoi parfaitement mais le lien ne fonctionne pas. Il est systématiquement coupé après le "01".

J'ai cru comprendre que la limite de caractère pour un hyperlien était de 255 mais du coup, en étant à 80 caractères cela devrait fonctionner non ?

Lorsque je fais des essais sur des dossiers en local, même sur des adresses très longue, tout fonctionne parfaitement sauf que l'usage final est sur un serveur...

J'ai essayé en utilisant

localisation = Workbooks("plan_action.xlsm").FullName

mais ça ne change rien. Même erreur au même endroit.

J'ai du louper quelque chose. Avez-vous une idée de la raison dernière tout ça ?

Merci pour votre aide.

Bonsoir,

les liens en html, ne doivent-ils pas être entouré de guillemets ou du moins d'apostrophes ?

Car votre chaine de caractères strbody, dans ce cas est erronée :

Il y a bien un guillemet après le = mais celui-ci sert uniquement à découper la chaine de caractères afin d'y inclure une variable VBA.

Il faut donc en mettre un deuxième, mais pour que celui-ci soit considéré comme un guillemet et non pas une coupure de chaine il faut en mettre un de nouveau, ce qui fait qu'au final, il faut 3 guillemets :

le premier pour dire que le deuxième est à considérer comme un guillemet et le troisième pour signifier que la chaine est coupée afin d'intégrer votre variable VBA, ensuite il en est de même pour la reprise de la chaine.

Comme cela votre "espace après le 01 sera considéré comme un espace et non pas comme une fin d'instruction qui fait que le lien est coupé :

"<br><br>Vous pouvez mettre à jour votre action vous-même en <a href=""" & localisation & """> cliquant-ici</a>"

D'où l'intérêt de prendre l'apostrophe pour ce type de lien, cela évite les répétitions de guillemets !

Et pas la peine de mettre des "blabla " & "bla bla" , ceci fait "blabla bla bla"

Attention, pas tester...

@ bientôt

LouReeD

Et ça fonctionne ! Merci beaucoup, une simple erreur donc qui m'a causé une bonne prise de tête...

Rechercher des sujets similaires à "envoi mail hyperlien fonctionne pas coupe fin"