Liens Hypertextes modifiés par Excel

Bonjour

J'ai cherché sur les questions de liens hypertexte mais je n'ai pas trouvé de réponse à mon problème.

Je précise que je ne connais quasiment rien à excel et je m'en sert pour différents tableaux basiques.

Donc voilà mon soucis (excel 2016)

J'ai un tableau excel qui répertorie toutes mes partitions par genre etc...et j'ai fait un lien hypertexte sur chaque titre de partition qui m'envoie sur le dossier du même nom.

Je me sert de ce tableau depuis des années et je n'ai jamais aucun soucis sauf que depuis hier mes liens ne fonctionnent plus. .......nooooooon.....des centaines de liens........

J'ai recréé un lien sur une partition et ça fonctionne...!!! mais je ne me vois pas refaire cela pour plusieurs centaines d'autres.

Je me suis rendu compte en passant la souris sur les titres qu'ils n'avaient pas le même chemin que celui que je venais de refaire.

Le nouveau m'indique file:///C\Users\Michael\Desktop\Categories\Titre.......ce qui parait normal puisque mon dossier principal est sur le bureau.

Tous les liens qui ne fonctionnent plus indiquent file:///C\Users\Michael\AppData\Roaming\Microsoft\Excel\Categories\Titre

Donc rien à voir...

J’espère avoir été assez clair dans mon descriptif et j’espère que vous pourrez trouver la raison à ce problème.

Merci d'avance

Michael

Hello !

Donc il faut remplacer AppData\Roaming\Microsoft\Excel par Desktop, soit par Rechercher/remplacer, soit par une fonction plus complexe ! mets nous un bout de fichier ...

Bonjour,

À tester (Pour le point 6, ne sélectionne pas toute la feuille mais bien les cellules contenant les liens) :

1) Copier ce code ;

Sub Modifier_lien()
    Dim Doc As Workbook
    Dim Cell As Range
    Dim OldStr As String
    Dim NewStr As String
    Dim OldHp As String
    Dim NewHp As String
    'Chemin à modifier
    OldStr = "AppData\Roaming\Microsoft\Excel"
    NewStr = "Desktop"
    Application.Calculation = xlManual
    Set Doc = Application.ActiveWorkbook
    For Each Cell In Selection
        'Verifie si la cellule contient des liens hypertexte
        If Cell.Hyperlinks.Count > 0 Then
            'Recupère l'adresse du lien sous forme de chaine
            OldHp = Cell.Hyperlinks(1).Address
            'Remplace l'ancienne chaine par la nouvelle
            NewHp = Replace(OldHp, OldStr, NewStr)
            'Supprime tous les liens hypertexte de la cellule
            Cell.Hyperlinks.Delete
            'Affecte le nouveau lien hypertexte
            Doc.ActiveSheet.Hyperlinks.Add Anchor:=Cell, Address:=NewHp
        End If
    Next Cell
    Application.Calculation = xlAutomatic
End Sub

2) Ouvrir l'éditeur VBA (Alt-F11) dans une copie du fichier Excel ;

3) Menu Insertion>Module ;

4) Coller ;

5) Fermer la fenêtre de l'éditeur VBA ;

6) Sélectionner la plage contenant uniquement les liens hypertexte ;

7) Afficher les macros (Alt-F8) et cliquer sur Exécuter.

Pas la peine d’enregistrer la macro, trouvée sur le net après une petite recherche.

merci Oyobrans mais cela ne fonctionne pas

Je vous joint un morceau du tableau.

A noter que les liens hypertextes des chiffres sur les lignes de titres ne fonctionnent plus également.

J'ai refait le 1er lien (20 regards sur 6 cordes).

Merci d'avance

Bon, j'avoue ne pas être un spécialiste des liens, c'est pour cela que j'avais jeté un œil d'ailleurs.

Petite question : Quand je survole les liens "morts", j'ai file:///C\Users\AppData\Roaming\Microsoft\Excel\Categories\Titre, et non pas file:///C\Users\Michael\AppData\Roaming\Microsoft\Excel\Categories\Titre, le dossier de ton profil est bien présent chez toi ?

Il me place le bon lien dans mon dossier de téléchargement, alors je pensais désactiver la mise à jour automatique des liens pour ce classeur (J'utilise la version 2007) :

Menu Fichier > Options > Options avancées puis décocher dans la section Lors du calcul de ce classeur > Mettre à jour les liaisons vers d'autres documents.

Peux-tu faire cela puis envoyer à nouveau ton fichier ?

Si il y a bien Michael avant AppData.

Donc voilà c'est décoché

Avec un peu de retard... Tu peux peut-être réessayer la procédure initiale avec ce code, j'ai juste changé les "\" en "/", ça passe chez moi :

Sub Modifier_lien()
    Dim Doc As Workbook
    Dim Cell As Range
    Dim OldStr As String
    Dim NewStr As String
    Dim OldHp As String
    Dim NewHp As String
    'Chemin à modifier
    OldStr = "AppData/Roaming/Microsoft/Excel"
    NewStr = "Desktop"
    Application.Calculation = xlManual
    Set Doc = Application.ActiveWorkbook
    For Each Cell In Selection
        'Verifie si la cellule contient des liens hypertexte
       If Cell.Hyperlinks.Count > 0 Then
            'Recupère l'adresse du lien sous forme de chaine
           OldHp = Cell.Hyperlinks(1).Address
           Debug.Print OldHp
            'Remplace l'ancienne chaine par la nouvelle
           NewHp = Replace(OldHp, OldStr, NewStr)
           Debug.Print NewHp
            'Supprime tous les liens hypertexte de la cellule
           Cell.Hyperlinks.Delete
            'Affecte le nouveau lien hypertexte
           Doc.ActiveSheet.Hyperlinks.Add Anchor:=Cell, Address:=NewHp
        End If
    Next Cell
    Application.Calculation = xlAutomatic
End Sub

merci de passer du temps pour moi Oyobrans

Alors cela fonctionne presque , il manque juste un slash que je n'arrive pas à rajouter sur la formule.

file:///C:\Users\Michael\Desktop\BOOKS\1 guitare\Adrian Andrei\ 20 regards....

file:///C:\Users\Michael\Desktop\BOOKS\1 guitare\Adrian Andrei - 20 regards....

Le premier c'est celui qui fonctionne et le 2e celui avec votre modif, il manque donc juste un slash après Andrei

Nota j'ai rajouté "BOOKS" dans la formule que j'avais zappé au départ.

en fait c'est DOSSIER/CATÉGORIE/AUTEUR/TITRE

en espérant ne pas abuser de votre temps

Merci

Bonsoir,

En fait, le code se contente de modifier "AppData/Roaming/Microsoft/Excel" en "Desktop" dans les liens :

'

Chemin à modifier
    OldStr = "AppData/Roaming/Microsoft/Excel"
    NewStr = "Desktop"

Apparemment, il faut remplacer les \ par des / dans la recherche, ce doit être dû aux paramètres régionaux ou je ne sais quoi (les voies de l'informatique...)

La macro n'est pas censée toucher à autre chose, elle ne transforme rien en tiret du moins. Es-tu (Êtes-vous) sûr que le tiret n'est pas présent au départ ? Il faut bien évidemment une situation générique pour appliquer un traitement, le remplacement de file:///C\Users\Michael\AppData\Roaming\Microsoft\Excel\Categories\Titre en file:///C\Users\Desktop\Microsoft\Excel\Categories\Titre en est une. Ce tiret pose-t-il problème partout ? Merci d'apporter des précisions.

Bonjour

non il n'y a pas de tiret

file:///C:\Users\Michael\Desktop\BOOKS\1 guitare\Adrian Andrei\ 20 regards....(pour que cela fonctionne)

file:///C:\Users\Michael\Desktop\BOOKS\1 guitare\Adrian Andrei - 20 regards....(avec votre modif)

ce qui fait

file:///C:\Users\Michael\Desktop\Dossier\Dossier\Dossier\Dossier

j’espère être assez clair

Merci d'avance


j'ai oublié une précision

La formule avec le tiret fonctionne quand il n'y a pas de sous dossiers dans le dossier "auteur"

Rechercher des sujets similaires à "liens hypertextes modifies"