Macro pour modifier lien hypertexte

Bonjour,

Je remercie par avance celle ou celui qui me mettra sur la route grace à une belle macro pour remplacer partiellement le contenu d'une cellule contenant un lien hyper texte

Exemple :

la colonne A contient 300 lignes de cellules contenant un lien hypertexte type \\serveur02\PARIS\test.xlsx

Mon besoin : remplacer le contenu et l'adresse du lien \\serveur02\PARIS par \\serveur02\LONDRES

Cette manip sera récurrente puisque je vais déplacer les fichiers attaché à ces liens à plusieurs reprise.

Je recherche une solution light d'autant plus que VBA et moi sommes des amis en devenir !

Merci

Pascal

Bonsoir,

une proposition de macro, à adapter :

le nom de la feuille (feuil1)

les cellules à modifier (a:a)

Sub replacehl()
For Each c In Worksheets("feuil1").Range("a:a")
 c.Hyperlinks(1).Address = Replace(c.Hyperlinks(1).Address, "\\serveur02\PARIS", "\\serveur02\LONDRES")
Next c
End Sub

Bonjour et merci de ta réponse

Cette macro me renvoye une erreur : Erreur d'exe 9, L'indice m'appartient pas à la sélection

Une piste pour m'aider ?

Merci de l'aide

Pascal

Bonsoir,

sur quelle ligne de code, reçois-tu cette erreur ?

peux-tu joindre ton fichier ?

si non, essaie ceci,

Sub replacehl()
For Each c In Worksheets("feuil1").Range("a:a")
 on error resume next
 c.Hyperlinks(1).Address = Replace(c.Hyperlinks(1).Address, "\\serveur02\PARIS", "\\serveur02\LONDRES")
 on error goto 0
Next c
End Sub

Hello,

Je te remercie

Cette macro marche très bien

A+

Pascal

Bonjour,

Les derniers tests ne sont pax concluant, forcément par manque de maitrise de ma part.

donc je me permets de d’adresser plus d’informations

Le fichier BASE DOC-TEST.xlsx est joint à l'envoi

La colonne 1 contient le nom du fichier

La colonne 2 le lien pour ouvrir le fichier

La colonne 3 le lein pour ouvrir le dossier

Initialement les fichiers sont dans

\\SERVEUR02\GROUPES\Lebouchet\QUALITE\METZ\BASE DOCUMENTAIRE\X

X correspond au dossier contenant le fichier, il ne changera pas de nom après le déplacement

Il va me falloir les déplacer dans

\\SERVEUR02\GROUPES\Metz\QUALITE\METZ\BASE DOCUMENTAIRE\X

Donc

Etape 1 : je remplace le contenu de la cellule sans problème

\\SERVEUR02\GROUPES\Lebouchet\QUALITE\METZ\BASE DOCUMENTAIRE

par

\\SERVEUR02\GROUPES\Metz\QUALITE\METZ\BASE DOCUMENTAIRE

Etape 2 : Je voudrais remplacer le contenu de l’adresse hypertexte dans la colonne 2

Je n'arrive pas faire fonctionner la macro

Etape 3 : idem pour la colonne 3

Merci pour l'aide

Bonjour,

pas de fichier joint (sans doute trop gros)

172base-doc-test.xlsx (233.43 Ko)

Bonjour,

j'ai supprimé des lignes. Tu noteras que le texte dans le lien varie alors que la racine est la meme : \\SERVEUR02\GROUPES\LEBOUCHET\QUALITE\METZ\BASE DOCUMENTAIRE

Merci de ton aide

Bonjour,

voici un code adapté qui fera les modifications dans les hyperliens ainsi que dans le contenu des cellules, j'ai rajouté une option de conversion en majuscules car j'ai remarqué qu'il y avait parfois des différences dans la casse des caractères utilisés (exemple on trouve parfois serveur02 et parfois Serveur02

inconvénient de cette option, tout est convertit en majuscules.

Sub replacehl()
Dim motàremplacer, remplacerpar, plageàmodifier, conversionenmajuscules, chaine
Dim c As Object
'---- paramètres à changer avant de lancer la macro

motàremplacer = "\\Serveur02\GROUPES\Lebouchet\"
remplacerpar = "c:\users\lebouchet\"
plageàmodifier = "a1:d10"
conversionenmajuscules = True

'----- fin des paramètres à modifier

If conversionenmajuscules Then
 motàremplacer = UCase(motàremplacer)
 remplacerpar = UCase(remplacerpar)
End If
For Each c In Worksheets("base documentaire").Range(plageàmodifier)

 On Error Resume Next
 chaine = c.Hyperlinks(1).Address
 If conversionenmajuscules Then chaine = UCase(chaine)
 c.Hyperlinks(1).Address = Replace(chaine, motàremplacer, remplacerpar)
 On Error GoTo 0
 chaine = c.Value
 If conversionenmajuscules Then chaine = UCase(chaine)
 c.Value = Replace(chaine, motàremplacer, remplacerpar)
Next c
End Sub

Et si tu faisais CTRL+F, ensuite tu vas sur l'onglet remplacer et tu remplis les deux champs par \\serveur02\PARIS et \\serveur02\LONDRES ?

jeanmichel0404 a écrit :

Et si tu faisais CTRL+F, ensuite tu vas sur l'onglet remplacer et tu remplis les deux champs par \\serveur02\PARIS et \\serveur02\LONDRES ?

Bonjour,

c'est en effet une option pour remplacer facilement le contenu des cellules, mais cela ne fonctionne pas pour modifier le lien hypertext sous-jacent.

Bonjour,

La solution h2so4 est la bonne de chez bonne

Merci de ton aide

Pascal

Rechercher des sujets similaires à "macro modifier lien hypertexte"