Lien Hypertexte invalide

Tu as essayé un "Rechercher/Remplacer" de "users/mon-nom/library/containers/com.microsoft.excel/Data/Volumes/"par "file:///Volumes/" ?

MàJ : Si ça ne donne rien par "Rechercher/Remplacer", tu dois pouvoir le faire par macro. Par exemple :
Bloc de code:
Sub Correctif()
Dim MonLien As String

For Each Lnk In ActiveSheet.Cells.Hyperlinks

    MonLien = Lnk.Address
    If Left(MonLien, 13) = "file:///Users" Then
        Lnk.Address = "file:///Volumes" & Right(MonLien, Len(MonLien) - 77)
    End If
    Next Lnk

End Sub

NB : vu l'heure, je n'ai pas poussé les tests très loin. Il est possible que dans le lien, la séquence "file:///Users" soit remplacée par "../.." en quel cas il faut bien sûr adapter la macro en conséquence. Pareil pour la valeur 77 (longueur de la partie à remplacer) : j'ai utilisé strictement le chemin qui est affiché dans ta capture d'écran, donc ça devrait coller. Mais c'est à contrôler...
 
Dernière édition:
@Aliboron
Merci pour ce temps passé,
en effet les liens sont de type ./. etc voici 2 screens

ce lien ne fonctionne pas, tu as compris

Capture d’écran 2025-02-21 à 09.03.32.webp

Celui ci fonctionne bien
Capture d’écran 2025-02-21 à 09.04.56.webp

J'ai donc modifié le code de la façon suivante :

Sub Correctif()
Dim MonLien As String

For Each Lnk In ActiveSheet.Cells.Hyperlinks

MonLien = Lnk.Address
If Left(MonLien, 10) = "../Library" Then
Lnk.Address = "file:///Volumes" & Right(MonLien, Len(MonLien) - 54)
End If
Next Lnk

End Sub

J'ai une erreur 7, mémoire insuffisante.

et j'ai trouvé ça aussi en fouinant :
Peut être agir la dessus pour figer ces liens définitivement ?

Capture d’écran 2025-02-21 à 06.53.34.webp

Qu'en penses-tu ???

Merci pour les réponses
 
j'ai enfin une bonne piste :
sauf que j'ai des autorisations d'accès aux fichiers bien lourdes, peut-on les désactiver quelque part ? c'est des factures et devis en classeur excel que je stocke dans ma time capsule..

Sub Correctif()
Dim MonLien As String
Dim Lnk As Hyperlink

On Error Resume Next
For Each Lnk In ActiveSheet.Hyperlinks
If Not Lnk Is Nothing Then
MonLien = Lnk.Address

If Left(MonLien, 10) = "../Library" Then
If Len(MonLien) > 54 Then
Dim NewLink As String
NewLink = "file:///Volumes" & Right(MonLien, Len(MonLien) - 54)

Debug.Print "Ancien : " & MonLien
Debug.Print "Nouveau : " & NewLink

Lnk.Address = NewLink

End If
End If
End If
Next Lnk
On Error GoTo 0
End Sub
 
Je n'ai pas compris ce que tu entends par "j'ai des autorisations d'accès aux fichiers bien lourdes". N'ayant par ailleurs pas de Time Capsule, je ne suis pas toujours sûr de bien pouvoir reproduire ce que tu décris (je me limite à quelques fichiers de test). Pour finir, est-ce que ta macro te permet de contourner le problème ?
La piste des "Propriétés" dans "ThisWorkbook" mérite d'être testée, en effet. Mais je ne sais pas si ça concerne précisément cette modification fantôme (ça peut concerner surtout les liaisons vers d'autres classeurs).
 
J'ai autorisé Excel à l'accès complet aux disques cela à résolu le fait que je doive cliquer sur 3 boutons consécutifs "oui" pour enfin accéder au fichier
1- octroyer les droits
2- confirmation du chemin
3- ouvrir.

Donc en résumé le code suivant fonctionne à merveille :

----------
Sub Correctif()
Dim MonLien As String
Dim Lnk As Hyperlink

On Error Resume Next ' Ignorer temporairement les erreurs
For Each Lnk In ActiveSheet.Hyperlinks
If Not Lnk Is Nothing Then
MonLien = Lnk.Address

If Left(MonLien, 10) = "../Library" Then
If Len(MonLien) > 54 Then
Dim NewLink As String
NewLink = "file:///Volumes" & Right(MonLien, Len(MonLien) - 54)

Debug.Print "Ancien : " & MonLien
Debug.Print "Nouveau : " & NewLink

Lnk.Address = NewLink
Else
MsgBox "Le lien est trop court pour être modifié: " & MonLien, vbExclamation
End If
End If
End If
Next Lnk
On Error GoTo 0 ' Réinitialise la gestion des erreurs
End Sub
----------

et j'a ouvert les droits afin de ne pas avoir à autoriser à chaque lien.

Sujet clos, je ne sais pas comment le faire signaler

Merci infiniment pour vos réponses et votre précieux temps


⭐️⭐️⭐️⭐️⭐️ pour @Aliboron
Bon week-end
 
  • J’aime
Réactions: Aliboron