Remplacer un mot dans le chemin des liens hypertext

Bonjour,

j'ai un dossier dans OneDrive où je stocke mes documents scannés et sur la colonne I j'ai mes liens hypertextes me permettant d'ouvrir ces fichiers.

Le problème est que le chemin vers dossier varie en fonction de l'ordinateur sur lequel je suis.

Le chemin est le suivant :

C:/Users/Laurent/OneDrive/Entreprise/1.%20GESTION/Documents/08-08-19_Hydis.pdf

Je cherche a remplacer "Laurent" par le nom d'utilisateur de l'ordinateur sur lequel je suis actuellement.

Pour ça j'ai trouver la fonction environ("USERSNAME") qui marche bien.

j'ai commencé un début de code mais ça marche pas.

Sub ChangeHyperlink()

DernLigne = Sheets("Compte Bancaire").Range("D" & Rows.Count).End(xlUp).Row

For I = 29 To DernLigne

lien = Sheets("Compte Bancaire").Range("I" & I).Hyperlinks(1).Address

If lien <> "" Then

    If Environ("USERNAME") = "Laurent" Then
        ReplaceArray = Replace(lien, "TOTO", "Laurent")
    ElseIf Environ("USERNAME") = "TOTO" Then
        ReplaceArray = Replace(lien, "Laurent", "TOTO")
    End If

End If

Next I

End Sub

J'ai une erreur sur :

lien = Sheets("Compte Bancaire").Range("I" & I).Hyperlinks(1).Address

Lorsque la cellule n'a pas de lien hypertexte, excel me dit que l'indice n'appartient pas à la sélection.

et pour :

ReplaceArray = Replace(lien, "TOTO", "Laurent")

j'ai trouvé ça sur les forums mais ça marche pas du tout.

merci à vous

bonjour,

essaie ceci

Sub ChangeHyperlink()

    DernLigne = Sheets("Compte Bancaire").Range("D" & Rows.Count).End(xlUp).Row

    For I = 29 To DernLigne
        lien = ""
        On Error Resume Next
        lien = Sheets("Compte Bancaire").Range("I" & I).Hyperlinks(1).Address
        On Error GoTo 0

        If lien <> "" Then

            If Environ("USERNAME") = "Laurent" Then
                lien = Replace(lien, "TOTO", "Laurent")
            ElseIf Environ("USERNAME") = "TOTO" Then
                lien = Replace(lien, "Laurent", "TOTO")
            End If
            Sheets("Compte Bancaire").Range("I" & I).Hyperlinks(1).Address = lien
        End If

    Next I

End Sub

Bonjour

mettre Environ("USERNAME") dans le chemin

A voir Ex:

    Range("I10").Hyperlinks(1).Address = _
        "C:\Users\" & Environ("USERNAME") & "\AppData\Local\defilement_V2.xls"

A+

Maurice

Après des recherches sur l'aide de Microsoft, j'ai pondu le code suivant :

Sub test()

For Each h In Worksheets("Compte Bancaire").Hyperlinks

    lien = InStr(h.Name, "Laurent")

If lien <> 0 Then

    If lien = 10 Then

        AncienLien = Right(h.Name, Len(h.Name) - (lien + 6))
        NouveauLien = "C:\Users\Toto" & AncienLien
        ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell, Address:=NouveauLien

    ElseIf lien = 7 Then

        AncienLien = Right(h.Name, Len(h.Name) - (lien + 3))
        NouveauLien = "C:\Users\Toto" & AncienLien
        ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell, Address:=NouveauLien

    End If
 End If
Next

End Sub

ça marche pas

Pour ceux que ça intéresse , j'ai trouvé ça :

Sub FixHyperlinks()
    Dim hl As Hyperlink
    For Each hl In ActiveSheet.Hyperlinks
        hl.Address = Replace(hl.Address, "Laurent", "Toto")
    Next hl
End Sub

et pour moi ça fonctionne !!

Salut,

tant mieux si ca fonctionne mais ou la pourquoi ne pas avoir mis ton nom d’utilisateur dans une variable?

Dim Profil As String
Profil  = environ("username")

puis ensuite au lieu de Laurent dans ton chemin tu mets

la variable [...] \" & Profil & "\[...]

DESOLE DOUBLON

Salut,

tant mieux si ca fonctionne mais ou la pourquoi ne pas avoir mis ton nom d’utilisateur dans une variable?

Dim Profil As String
Profil  = environ("username")

puis ensuite au lieu de Laurent dans ton chemin tu mets

la variable [...] \" & Profil & "\[...]

Je l'avais fais mais ne pouvant modifier le user en fonction du pc j'ai privilégié un des deux users.

Même si ça n'a pas beaucoup d’intérêt puisque le user est mise à jour à chaque ouverture du fichier, j'ai remis environ(username).

merci à toi.

Rechercher des sujets similaires à "remplacer mot chemin liens hypertext"