Autres Modifier lien hypertexte

Jackwebb

XLDnaute Nouveau
Bonjour,

je suis débutant sur excel et j’ai un probleme, je travaille sur des tableau ou j'ai insèré des liens hypertextes vers des images. Le probleme c’est que jai changé les emplacements des dossiers. Du coup il ne trouve plus le chemin du dossier et donc des fichiers. J’ai 800 liens à modifier. Quelle manip simple je peux effectuer ? Merci d’avance

Tino
 

job75

XLDnaute Barbatruc
Bonjour Jackwebb,

Téléchargez le dossier joint, dézippez-le et ouvrez le fichier Liens(1).xlsm.

Les liens hypertextes des 3 images doivent fonctionner.

Ensuite déplacez les 3 images en les plaçant dans le dossier Mes images.

Cliquez sur le bouton pour modifier les liens avec la macro :
VB:
Sub Modifier_liens()
Dim chemin$, h As Hyperlink
chemin = ThisWorkbook.Path & "\Mes images\"
For Each h In [D:D].Hyperlinks
    h.Parent.Hyperlinks.Add h.Parent, chemin & Mid(h.Address, InStrRev(h.Address, "\") + 1)
Next
End Sub
A+
 

Pièces jointes

  • Dossier.zip
    36.7 KB · Affichages: 9
Dernière édition:

Jackwebb

XLDnaute Nouveau
Merci pour votre réponse, sur votre document cela a marche du premier coup mais sur le mien rien, j’essaie depuis tout a l’heure, mais rien n’y fait. Cest aussi la premiere fois que je me sers de la macro. Je suis desole d’etre si debutant. Help! 😢
 

job75

XLDnaute Barbatruc
Bonjour Jackwebb,

Dans le code que j'ai donné le dossier "Mes images" est un sous-dossier du dossier où se trouve le fichier de la macro.

Si ce n'est pas le cas remplacez ThisWorkbook.Path & "\Mes images\" par le chemin du dossier des images.

Sans oublier l'antislash "\" à la fin.

A+
 

job75

XLDnaute Barbatruc
Alors on va tout vous mâcher.

Téléchargez le dossier zippé joint et extrayez l'ensemble dans le même dossier.

Ouvrez le fichier Excel, touches Alt+F8 et exécutez la macro Modifier_liens :
VB:
Sub Modifier_liens()
Dim chemin$, h As Hyperlink, nomfich$
chemin = ThisWorkbook.Path & "\Carton 1\"
For Each h In [U:U].Hyperlinks
    nomfich = Mid(h.Address, InStrRev(h.Address, "\") + 1)
    h.Parent.Hyperlinks.Add h.Parent, chemin & nomfich, TextToDisplay:=nomfich
    h.Parent.Font.Size = 16 'taille de la police
Next
End Sub
Ensuite cliquez sur un lien hypertexte en colonne U.

Ce que j'ai fait est simple :

- j'ai d'abord enregistré le fichier Excel en .xlsm (prenant en charge les macros)

- je suis allé dans VBA (Alt+F11) puis menu Insertion => Module pour créer Module1

- double-clic en haut à gauche sur Module1 et j'y ai collé le code de la macro.

A+
 

Pièces jointes

  • Classeur1test.zip
    724.7 KB · Affichages: 8

job75

XLDnaute Barbatruc
Bonjour Jackwebb,

J'ai testé sans problème la macro avec 800 liens hypertextes.

Maintenant s'il y a dans la feuille une macro Worksheet_Change il fallait le dire.

Dans ce cas il faut ajouter les Application.EnableEvents :
VB:
Sub Modifier_liens()
Dim chemin$, h As Hyperlink, nomfich$
chemin = ThisWorkbook.Path & "\Carton 1\"
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
For Each h In [U:U].Hyperlinks
    nomfich = Mid(h.Address, InStrRev(h.Address, "\") + 1)
    h.Parent.Hyperlinks.Add h.Parent, chemin & nomfich, TextToDisplay:=nomfich
    h.Parent.Font.Size = 16 'taille de la police
Next
Application.EnableEvents = True 'réactive les évènements
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 184
Messages
2 086 006
Membres
103 088
dernier inscrit
Psodam