Modification de lien hypertexte [masse] Excel

Résolu
Xrag -  
 Didier -
Bonjour,

Donc voilà, je suis actuellement en stage dans une entreprise et j'ai besoin de modifier les liens hypertexte dans plusieurs millier de fichier Excel... Donc dans les liens j'ai des %20 qui correspondent à des espaces et j'ai besoin de les remplacer par des _ ... Je risque de passer ma vie là dessus et j'aimerais trouver un moyen rapide de tout modifier !

Merci d'avance de vos réponses ;)

10 réponses

Résumé de la discussion

Le problème porte sur la modification en masse de liens hypertexte dans des milliers de fichiers Excel, afin de remplacer les codes %20 représentant des espaces par des underscores. Une macro dédiée parcourt les cellules, détecte les liens hypertexte, remplace l’adresse par la nouvelle chaîne et recrée les hyperliens, tout en gérant potentiellement des modifications de mise en page. En alternative, la fonction Rechercher et remplacer d’Excel peut suffire en ciblant une plage, mais il faut restreindre l’espace de remplacement pour éviter des modifications globales. Un témoignage confirme que la macro a résolu le problème, tout en signalant que certaines mises en page peuvent être modifiées dans quelques cellules après exécution.

Bobot (l'IA à votre service)
  1. CyberLowkey
     
    Bonjour,

    Au cas où, j'ai eu moi-même ce problème de liens aà modifier en masse.

    Cette macro m'a permis d'arriver à mes fins.

    Attention cependant parfois la mise en page a été modifiée sur quelques cellules.

    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 = "\\Ogidoc1\Doc OGI\"

    NewStr = "\\ogi.local\racineogi\data\OGIDOC\Doc ogi\"

    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
    25
    1. ender34
       
      Merci beaucoup, cette macro m'a sauvé la vie :)
      0
    2. Pierre
       
      Merci ! Tu viens de me faire gagner un temps fou !
      0