Pb Enregistrement lien hypertxte, lettre lecteur change selon l'utilisateur

Bonjour,

J'ai un soucis pour lequel je ne trouve pas de réponse.

Le code ci-dessous ouvre l'explorateur Windows de fichier, l'utilisateur sélectionne alors le fichier souhaité, et le chemin du fichier en question s'enregistre dans mon fichier Excel sous forme de lien hypertexte.

Mon problème est que les lecteurs son différents suivant les personnes de la société :

Exemple le lien enregistré par Mr X correspond à: D:\PRN\VJC\dre.pdf , tandis que celui de Mr Y correspond à V:\PRN\VJC\dre.pdf

Si Mr X enregistre le lien du fichier, Mr Y ne pourra pas l'ouvrir, et vice-versa.

Je n'arrive pas à récupérer le chemin avec le nom du serveur (evidemment commun à tout le monde) sous cette forme : \\gqmdam\change\PRN\VJC\

Existe il un moyen de recuperer le nom du chemin complet ?

Merci d'avance pour le temps accordé à mon post

Ci dessous le code correspondant :

    'OUVERTURE DU DOSSIER

    Application.FileDialog(msoFileDialogOpen).InitialFileName = "\\gqmdam\change\PRN"
    Application.FileDialog(msoFileDialogOpen).Filters.Clear
    Application.FileDialog(msoFileDialogOpen).Filters.Add "PDF", "*.pdf"

    If Application.FileDialog(msoFileDialogOpen).Show = True Then
        chemin = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
    Else
        Exit Sub
    End If

Bonsoir,

Tu remplaces le lecteur par la partie adresse réseau manquante dans le chemin récupéré.

Cordialement.

Etant donné que je ne suis pas sur du lien je n'aime pas cette solution ... En effet, le lien peut etre renvoyé avec la lettre pour certain mais aussi avec le nom du serveur pour d'autre .. Donc pas optimal ...

il n'est pas question de lien hyppertexte dans ton bout de code, mais d'une donnée String modifiable.

Effectivement, mais la chaine de caractere que je recupére est en l'occurence un chemin qui sera un lien hypertexte .. Bon probleme est que je ne suis pas sur dans tout les cas que cette chaine de caractère commence par "D:/" mais peut etre aussi par "\\gqmdam\change\" voir autre selon les postes.

Ça, ça se teste...

Pour le reste, ton code cité ne l'indique pas, tu peux opérer avec Shell ou par Hyperlink, et même sans création préalable du lien (création lors de l'utilisation, juste le temps de l'utiliser).

Je ne l'ai pas affiché dans mon code mais la notion d'hyperlink est bien presente, elle n'est pas le probleme de mon post !

Alors je ne vois pas de problème, l'adresse d'un Hyperlink, c'est du texte, un texte se teste et se modifie à convenance, tu as donc tout loisir d'ajuster cette adresse.

Cordialement.

Bonjour,

ici une fonction pour récupérer le chemin UNC : https://stackoverflow.com/questions/47908572/how-to-get-a-unc-path-from-application-path

Avec l'appel un peu modifié :

Sub test()
    Dim Drive As String, ch As String
    Drive = "N:"
    ch = GetNetworkPath(Drive)
End Sub

Function GetNetworkPath(ByVal DriveName As String) As String
    Dim objNtWork  As Object
    Dim objDrives  As Object
    Dim lngLoop    As Long
    Set objNtWork = CreateObject("WScript.Network")
    Set objDrives = objNtWork.enumnetworkdrives

    For lngLoop = 0 To objDrives.Count - 1 Step 2
        If UCase(objDrives.Item(lngLoop)) = UCase(DriveName) Then
            GetNetworkPath = objDrives.Item(lngLoop + 1)
            Exit For
        End If
    Next
End Function

Mais D: est également un lecteur réseau ? Difficile que tu panaches avec des lecteurs locaux.

Yes merci Eric, ton bout de code est vraiment bien pour récupérer la correspondance entre le lecteur et le nom du serveur.

Merci +++

Rechercher des sujets similaires à "enregistrement lien hypertxte lettre lecteur change utilisateur"