Modification de lien hypertexte [masse] Excel
RésoluDidier -
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
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.
-
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