Lien Hypertext dans mail auto de word

  • Initiateur de la discussion Initiateur de la discussion fredl
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fredl

XLDnaute Impliqué
Bonjour à tous,
j'ai l'habitude d'envoyer automatiquement par mail(CDO) de excel des textes contenant un lien Hypertext vers un fichier sur le réseau.
J'ai essayé de transposer la macro sur word avec succes sans lien hypertext, et sans succes avec ce dernier :
le bug ayant lieu à la ligne .TextBody.... sur "Application.Substitute" (voir macro ci dessous)
Si vous avez une idée...
Merci d'avance pour vos réponses.
Cordialement
Frédéric

Sub envoiMailCDOlienHypertextSousWord()

Dim config As CDO.Configuration
Dim email As CDO.message
Set config = New CDO.Configuration
With config.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = CDO.cdoSendUsingPort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "TOKYO"
.Update
End With

'On prépare l'envoi de Mail
Set mail = New CDO.message
With mail
Set .Configuration = config
.To = "frederic.lefred@cea.fr"
.Subject = sujet

.TextBody = "Ci joint le lien vers le fichier " & vbLf & _
'"file://" & Application.Substitute("S:\fichier.xls, " ", "%20") & vbLf & "Cordialement" & vbLf & vbLf & "FL"


.From = "gg@cea.fr"
.Send
End With
 
Re : Lien Hypertext dans mail auto de word

bonjour,

Oui,james à raison, Application.Substitute est une fonction de feuille de calcul (son équivalent VBA)

D'ailleurs dans la macro Excel tu peux remplacer aussi Application.Substitute par replace:

Code:
 Replace("S:\fichier.xls", " ", "%20")

+
 
Dernière modification par un modérateur:
Re : Lien Hypertext dans mail auto de word

Re,

Bon, de toute façon si ton nom de fichier est fixe: "S:\fichier.xls" tu n'as pas besoin de

Application.Substitute("S:\fichier.xls", " ", "%20")

Puisque cette instruction n'est là que pour remplacer les espaces du nom de fichier par des "%20" et que S:\fichier.xls n'en a pas. Ou alors tu ne dis pas tout!

Ne faudrait-il pas remplacer également les anti-slash par des slash?

Code:
Replace(Replace(NomDeFichier, " ", "%20"),"\","/")
A+
 
Dernière modification par un modérateur:
Re : Lien Hypertext dans mail auto de word

Oups! Effectivement,
je n'ai pas tout dit...
Le chemin vers le fichier est variable et peut contenir des espaces..
Merci pour ta remarque pertinente sur les anti-slashs.
J'en prend bonne note.
Merci à vous
Frédéric
 
Re : Lien Hypertext dans mail auto de word

Bonjour à tous

Peut-être tout simplement

Code:
.TextBody = "Ci joint le lien vers le fichier " & vbLf & _
[COLOR="red"][B]'[/B][/COLOR]"file://" & [COLOR="Blue"][B]Replace[/B][/COLOR] ("S:\fichier.xls[COLOR="Blue"][B]"[/B][/COLOR], " ", "%20") & vbLf & "Cordialement" & vbLf & vbLf & "FL"

En rouge a supprimer (simple cote en trop : ' " ffile)
et en bleu à rajouter (Guillemet aprés xls)
et modifier Replace à la place de substitute
 
Dernière édition:
Re : Lien Hypertext dans mail auto de word

Bonjour systmd,

Application.Replace est aussi un fonction de feuille de calcul et non VBA, elle ne fonctionnera pas sous WORD comme le demande notre ami.

Replace 'sans application' est une fonction VB comprise par tout les moteurs VBA

Je viens de vérifier, et chez moi:

Code:
"file://" & Replace(Replace(ThisWorkbook.FullName, "\", "/"), " ", "%20")

fonctionne correctement comme lien HTML dans un message outlook
A+
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Réponses
1
Affichages
584
Réponses
4
Affichages
3 K
Réponses
16
Affichages
5 K
Réponses
17
Affichages
2 K
Retour