Remplacement de plusieurs liens hypertextes

Bonjour à tous,

Je rencontre actuellement un problème au travail, suite à la réorganisation de nos dossiers tous les liens hypertextes des fichiers excel ne fonctionnent plus.

Les liens hypertextes sont fait via des images, je n'ai aucune idée de comment faire pour les changer en one shot.

Merci d'avance

Jimmy

Bonjour,

Par macro, il faut "lire" la destination et la changer ... à condition bien sûr d'(avoir la correspondance avant/après, ou tout au moins la logique qui permet d passer d'avant à après.

As-tu un exemple avec une image et un lien avant/après ?

exemple de macro faite en apprentissage ...

    ActiveSheet.Shapes.Range(Array("Picture 1")).Select
    Selection.ShapeRange.Item(1).Hyperlink.Address = "C:\Users\Michel\Downloads\theyoshi.xlsx"

sachant que l'adresse peut-être lue comme suit :

Selection.ShapeRange.Item(1).Hyperlink.Address

on peut donc modifier une partie de cette adresse et la réinjecter dans la nouvelle par un replace par exemple !

Bonjour,

A droite le type d'image utilisé pour le lien hypertext:

image

As-tu un exemple avec une image et un lien avant/après ?

avec le fichier excel bien sûr ... sinon on ne peut rien faire d'autre que proposer ce que j'ai fait plus haut !

Bonjour,

Ci joint le fichier.

Bonjour,

par quoi veux-tu remplacer ? quel dossier avant et quel dossier après ?

Mets toi sur une feuille et lance la macro par Ctrl+Maj+L, tu auras les liens hypertextes de la page.

Réponds à ma question précédente pour compléter la macro.

Sub changelien()
Dim lien As Worksheet
Set lien = Sheets("liens")
lien.Cells.Clear

Dim f As Worksheet
Dim sh As Object

i = 1
On Error Resume Next
    Set f = ActiveSheet
    For Each sh In f.Shapes
        f.Shapes.Range(Array(sh.Name)).Select
        lien.Cells(i, 1) = f.Name
        lien.Cells(i, 2) = sh.Name
        lien.Cells(i, 3) = Selection.ShapeRange.Item(1).Hyperlink.Address
        f.Cells(1, 1).Select
        i = i + 1
    Next
    f.Cells(1, 1).Select

lien.Select

End Sub

je suis obligé de travailler onglet par onglet car il y a des choses bloquantes dans ton fichier, et je n'ai pas encore réussi à la piéger.

Bonjour,

Ancien répertoire:

\\NASBOU01\COMPON\Entretien\Maintenance fromagerie\Amélioration du perfectionnement du fonctionnement de la fromagerie\...

Nouveau répertoire:

\\NASBOU01\COMPON\Entretien\1_SFP\Maintenance fromagerie\Amélioration du perfectionnement du fonctionnement de la fromagerie\...

je dois mettre ta formule pour chaque onglet?

Je vais le mettre dans la macro.

Mais les liens actuels commencent par U:

exemple

U:\Entretien\Maintenance fromagerie\Amélioration du perfectionnement du fonctionnement de la fromagerie\Equipements au contact alimentaire\Convoyeurs conditionnement\...

je vais considérer que U: équivaut à \\NASBOU01\COMPON

fais une copie de ton fichier

et essaie sur la copie cette macro onglet par onglet : tu te positionnes sur un onglet à réparer et tu fais CTRL + MAJUSCULE + L

Sub changelien()
Dim lien As Worksheet
Set lien = Sheets("liens")
lien.Cells.Clear

Dim f As Worksheet
Dim sh As Object
avant = "Entretien\Maintenance fromagerie"
apres = "Entretien\1_SFP\Maintenance fromagerie"
i = 1
On Error Resume Next
    Set f = ActiveSheet
    For Each sh In f.Shapes
        f.Shapes.Range(Array(sh.Name)).Select
        lien.Cells(i, 1) = f.Name
        lien.Cells(i, 2) = sh.Name
        lien.Cells(i, 3) = Selection.ShapeRange.Item(1).Hyperlink.Address
        Selection.ShapeRange.Item(1).Hyperlink.Address = Replace(Selection.ShapeRange.Item(1).Hyperlink.Address, avant, apres)
        lien.Cells(i, 4) = Selection.ShapeRange.Item(1).Hyperlink.Address
        f.Cells(1, 1).Select
        i = i + 1
    Next
    f.Cells(1, 1).Select

lien.Select

End Sub

La marco ne se lance pas:

image image

et les autres onglets ?

as-tu autorisé les macros ?

as-tu recopié la macro dans un autre fichier ?

exemple pour moi ligne opercule : avant / après

capture d ecran 68

J'ai fait l'opération chez moi, il y a peut-être encore des liens à modifier !

J'ai le même message sur chaque onglet...

Ton fichier fonctionne bien.

Comment dois je créer la macro? je m'y prend surement mal

as-tu recopié la macro dans ton fichier ?

Oui, j ai copié les lignes

ok, donc il ne faut pas lancer avec Ctrl+Maj+L mais directement en choisissant la macro ou en lançant à partir de l'éditeur de macro

il faut aussi créer un onglet appelé lien pour voir l'avancement de la macro et avoir un compte-rendu

essaie d'abord sur le fichier posté pour voir son déroulement

Rechercher des sujets similaires à "remplacement liens hypertextes"