Bonjour à tous,
J'ai un petit problème pour récupérer le nom complet d'un classeur.
Dans un fichier Excel que j'ai développé, il y a une macro qui permet de préparé un mail (PJ, Sujet, Body et surtout un lien vers le fichier Excel)
Voilà le code simplifié :
Ce fichier est un modèle sur le réseau qui est dupliqué et utilisé par une vingtaine de personnes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Private Sub CreationMail() On Error GoTo err_outlook Dim WB As Workbook: Set WB = ThisWorkbook Dim MonApply As New Outlook.Application: Set MonApply = Outlook.Application Dim MonMail As Outlook.MailItem: Set MonMail = MonApply.CreateItem(olMailItem) Dim strHTML As String strHTML = strHTML & "<a href=""" & WB.FullName & """>" & WB.Name & "</a><BR>" With MonMail .Recipients.Add ("Mon Destinataire") .Subject = "Mon Sujet" .HTMLBody = strHTML .Display End With Fin: Set MonApply = Nothing Set MonMail = Nothing Set WB = Nothing Exit Sub err_outlook: 'Gestion de l'erreur Resume Fin End Sub
Le problème arrive, certain de ces utilisateurs ont ajoutés un emplacement réseau dans leurs explorateur Windows
Par exemple : Mon espace (\\lien réseau\Dossier\Sous dossier) (A:)
Du coup une fois sur le fichier Excel, ThisWorkbook.FullName ne renvoie pas
\\lien réseau\Dossier\Sous dossier\Fichier.xlsbmais
a:\Fichier.xlsbLe lien dans le mail devient donc inutilisable pour toutes personnes recevant le mail et n'ayant pas le même emplacement réseau de paramétré.
Existe-t-il donc un moyen de récupérer le nom complet du fichier sans prendre en compte les éventuels emplacements réseau personnalisés par l'utilisateur ?
Merci d'avance pour l'intérêt que vous allez accorder à mon problème.
Bonne journée tout le monde.
Partager