Modification chemin sur plusieurs liens Hypertexte

  • Initiateur de la discussion Initiateur de la discussion Lakota
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

Lakota

Guest
Bonjour,

Suite à l'envois d'un fichier excel par mail, celui-ci m'est revenu avec tous mes liens hyper texte modifiés.
Je cherche donc un moyen pour tous les remettre à jour en même temps.

Le chemin correcte est celui-ci :

\\FR00001\Bureau\Projet\AAA\BBB
\\FR00001\Bureau\Projet\CCC\DDD

Le chemin erroné que j'ai maintenant est celui-là :

D:\Profils\lakota\APPDATA\LOCAL\TEMP\wz0f9a\AAA\BBB
D:\Profils\lakota\APPDATA\LOCAL\TEMP\wz0f9a\CCC\DDD


Je cherche donc un moyen de remplacer le début des liens D:\Profils\lakota\APPDATA\LOCAL\TEMP\wz0f9a\ par \\FR00001\Bureau\Projet\

J'ai essayer chercher remplacer, mais ça ne fonctionne pas.

Merci par avance pour votre aide.

Salutations
 
Désolé, je n'ai pas été alerté de la réponse, je vous joins le fichier concerné réduit

la colonne à compléter est la colonne C
j'ai mis en surbrillance jaune les cellules vides de liens (une partie)

j'ai aussi laissé les macros utilisées si ça peut rendre service
par exemple saisie auto des commentaires et leur mise en forme, tris etc...

il y a au début des macros une ébauche pour les liens hypertext

merci d'avance
 

Pièces jointes

Bonsoir didus,

Voici 2 solutions, la 1ère crée les liens hypertextes après les avoir tous supprimés :
VB:
Sub Creer_Liens1()
Dim i&
With [A1].CurrentRegion
    .Columns(3).Hyperlinks.Delete 'RAZ
    For i = 2 To .Rows.Count
        .Parent.Hyperlinks.Add .Cells(i, 3), .Cells(i, 3)
    Next
End With
End Sub
La 2ème crée seulement les liens qui n'existent pas :
VB:
Sub Creer_Liens2()
Dim i&
For i = 2 To [A1].CurrentRegion.Rows.Count
    If Cells(i, 3).Hyperlinks.Count = 0 Then ActiveSheet.Hyperlinks.Add Cells(i, 3), Cells(i, 3)
Next
End Sub
PS : il n'y a aucune macro dans un fichier .xlsx...

A+
 
Bonjour,
Encore en retard le didus, merci pour les réponses taillées sur mesure, j'ai testé les deux formules qui ont toutes les deux leur intérêt, je vais devoir travailler la compréhension de cette minuscule ligne de code, car malgré son efficacité, je n'ai pu l'assimiler à la lecture
De la compréhension nait l'efficacité...
Un tout grand merci Job75 et désolé pour le xslx que je n'ai pas compris, lui non plus, pas trop doué le garçon,
Amitiés
 
Bonjour,

Je souhaiterais modifier un fichier qui a 1300 lignes et dans chaque ligne se trouve entre 2 à 15 liens hypertextes, séparés par des virgules.
En effet, les liens ne finissent pas par ".jpeg" alors qu'ils devraient.. Comment puis-je faire en passant par la macro (je n'ai jamais utilisé VBA)?

Un tout grand merci pour votre aide!
 
Bonjour Florence, bienvenue sur XLD,

Des liens concaténés ne sont plus des liens hypertextes.

Vous voulez les séparer ? Pour les mettre où ? Soyez plus claire et joignez un fichier anonymisé.

A+
Bonjour Job75,

Voici un exemple en fichier joint.
Ce sont 20 articles, qui sont repris ligne par ligne et pour chaque article, il y a 2 à 15 photos associées.
Nous ne souhaitons pas séparer les liens, juste modifier les fins des liens afin qu'ils finissent tous par ".jpeg" et ainsi qu'ils fonctionnent correctement.
Ma question vous semble-t-elle plus claire?

Merci beaucoup d'avance!
 

Pièces jointes

Bonjour Florence,

Entrez cette formule en D5 et tirez-la vers le bas :
Code:
=SUBSTITUE(SUBSTITUE(SUBSTITUE(C5;" ";);",";".jpeg , ")&".jpeg";".jpeg.jpeg";".jpeg")
Puis Copier-Collage spécial-Valeurs de D5: D24 sur C5:C24.

Fichier joint, la colonne D peut être effacée.

Mais je ne vois pas à quoi cela va servir puisque comme je l'ai dit les liens ne peuvent pas fonctionner.

A+
 

Pièces jointes

Bonjour Florence,

Entrez cette formule en D5 et tirez-la vers le bas :
Code:
=SUBSTITUE(SUBSTITUE(SUBSTITUE(C5;" ";);",";".jpeg , ")&".jpeg";".jpeg.jpeg";".jpeg")
Puis Copier-Collage spécial-Valeurs de D5: D24 sur C5:C24.

Fichier joint, la colonne D peut être effacée.

Mais je ne vois pas à quoi cela va servir puisque comme je l'ai dit les liens ne peuvent pas fonctionner.

A+
Bonjour Job75,

En effet, je travaille une Google Sheet sur Drive et je me rends compte que le comportement n'est pas pareil que sur Excel!
Sur Google Sheet, les liens séparés par des virgules fonctionnent bien comme des liens hypertextes individuels, même s'ils se trouvent sur la même cellule (voir capture d'écran).
Il n'y a donc rien à faire à ce sujet?
Merci pour votre patience!
 

Pièces jointes

  • Capture d’écran 2023-04-26 à 15.46.55.png
    Capture d’écran 2023-04-26 à 15.46.55.png
    311.7 KB · Affichages: 19
Re : Modification chemin sur plusieurs liens Hypertexte

Bonjour Lakota, bienvenue sur XLD,

Allez dans VBA (Alt+F11) et collez cette macro dans un Module :

Code:
Sub ModifierLiens()
Dim h As Hyperlink
For Each h In ActiveSheet.Hyperlinks
h.Address = Replace(h.Address, "D:\Profils\lakota\APPDATA\LOCAL\TEMP\wz0f9a\", "\\FR00001\Bureau\Projet\")
Next
End Sub
Puis lancez-la (Alt+F8), la feuille à modifier étant la feuille active.

A+

Bonjour,
Je découvre ce post, car je cherche à modifier le chemin d'accès des liens hypertexte d'un fichier Excel de plus de 6000 lignes, qui a aussi des cases vides (sans liens) sur certaines lignes.
Le code VBA proposé semble convenir, mais je rencontre l'erreur "erreur d'exécution '7': Mémoire insuffisante".
J'allais abandonner et me résoudre à modifier les liens un à un lorsque j'ai tenté de copier quelques lignes dans une feuille vide, d'utiliser la macro et de recopier dans le bon tableau une fois les liens corrigés. Cela a fonctionné, mais j'ai à nouveau rencontrer le bug même en voulant modifier une seule case dans l'onglet vierge...
Après plusieurs essais, je me dis qu'il faut peut être préciser dans le code qu'il peut y avoir des lignes où il n'y a pas encore de liens.
Sauf que je ne maitrise pas du tout les codes VBA ; Je n'ai fait que copier la ligne que vous avez proposé.

Pouvez vous me dire comment modifier le code pour qu'il ignore les lignes vides ?

Merci d'avance !

Alice


Correction 24/03/2026 14:17 : finalement je ne pense pas que ce soit dû aux lignes vides, car lorsque je fais du copier/coller de quelques lignes sur un onglet vierge et que j'utilise la macro, il y a parfois des lignes vides au milieu, et pourtant ça marche.
D'un autre côté, parfois je ne copie que la case concernée, et la macro bloque avec l'erreur '7'.
Peut être est ce dû tout simplement au fait que par moment, trop de monde travaille sur le même réseau et qu'il est compliqué pour la machine d'aller chercher les informations au bon endroit....
Si quelqu'une peut m'éclairer à ce sujet ce serait top ! Merci d'avance.
 
Dernière édition:
Bonjour Alice8, bienvenue sur XLD,

Déposez un fichier avec quelques liens hypertextes sans données confidentielles et dites-nous ce que vous voulez obtenir.

A+
Bonjour Job75,

Je ne vois pas comment déposer un fichier avec des liens, c'est trop compliqué : les liens renvoient à des documents sur le réseau entreprise.

Mais je peux essayer de résumer la problème en vous donnant un modèle de ce que je souhaite faire : en fait c'est le chemin d'accès avec les premiers dossiers que je dois modifier.

Les liens actuels ont ce genre de chemin d'accès : (il y a de nombreux sous dossiers ; ceux qui n'ont pas été modifié seront nommés SousDossier1, 2 3 ...)

\\entreprise.fr\
Commun\
Département\
Service\
Site\
Domaine\
SousDossier1\SousDossier2\SousDossier3\SousDossier4\Fichier.pdf


Ce que je souhaite c'est corrigé le chemin d'accès qui mène au sous dossier 1 par les nouveaux noms des 6 premiers dossiers ; le réseau entreprise a un nouvel emplacement (il passe par teams), et les premiers sous dossiers ont tous été renommés: (Je rajoute Nouveau)

NouveauCommun/
NouveauDepartement/
NouveauService/
NouveauSite/
NouveauDomaine)/
SousDossier1\SousDossier2\SousDossier3\SousDossier4\Fichier.pdf

J'ai utilisé la macro que vous avez proposé mais régulièrement il m'indique "erreur d'exécution '7': Mémoire insuffisante".

Mon fichier comporte 31 colonnes de A à AE et 7104 lignes actuellement.
Mes liens hypertextes sont dans les colonnes M et T, mais toutes les lignes ne sont pas concernées.
Ce document possède également des liens dans les colonnes B, C, E et F qui ne renvoient pas vers le même réseau (d'ailleurs ceux là aussi ne fonctionnent plus, mais je ne maitrise pas du tout leur accès, ce n'est pas moi qui ai créé ce fichier : les liens renvoient sur une base de données interne de l'entreprise via leur réseau grâce à des autorisations d'accès)

Pour le moment je me débrouille en copiant quelques cases sur une feuille vide : je fais la modification grâce à la macro, et je recopie à nouveau dans le fichier. J'avance lentement, mais certainement plus vite que si je devais faire les liens un à un.
Sauf que parfois, même avec très peu de case, il me bloque avec cette "erreur d'exécution '7': Mémoire insuffisante"

Si vous avez une idée pour que ça fonctionne mieux, je suis preneuse !
En attendant je continue avec ma technique....

Merci beaucoup de votre attention...
 
Bonjour Job75,

Je ne vois pas comment déposer un fichier avec des liens, c'est trop compliqué : les liens renvoient à des documents sur le réseau entreprise.

Mais je peux essayer de résumer la problème en vous donnant un modèle de ce que je souhaite faire : en fait c'est le chemin d'accès avec les premiers dossiers que je dois modifier.

Les liens actuels ont ce genre de chemin d'accès : (il y a de nombreux sous dossiers ; ceux qui n'ont pas été modifié seront nommés SousDossier1, 2 3 ...)

\\entreprise.fr\
Commun\
Département\
Service\
Site\
Domaine\
SousDossier1\SousDossier2\SousDossier3\SousDossier4\Fichier.pdf


Ce que je souhaite c'est corrigé le chemin d'accès qui mène au sous dossier 1 par les nouveaux noms des 6 premiers dossiers ; le réseau entreprise a un nouvel emplacement (il passe par teams), et les premiers sous dossiers ont tous été renommés: (Je rajoute Nouveau)

NouveauCommun/
NouveauDepartement/
NouveauService/
NouveauSite/
NouveauDomaine)/
SousDossier1\SousDossier2\SousDossier3\SousDossier4\Fichier.pdf

J'ai utilisé la macro que vous avez proposé mais régulièrement il m'indique "erreur d'exécution '7': Mémoire insuffisante".

Mon fichier comporte 31 colonnes de A à AE et 7104 lignes actuellement.
Mes liens hypertextes sont dans les colonnes M et T, mais toutes les lignes ne sont pas concernées.
Ce document possède également des liens dans les colonnes B, C, E et F qui ne renvoient pas vers le même réseau (d'ailleurs ceux là aussi ne fonctionnent plus, mais je ne maitrise pas du tout leur accès, ce n'est pas moi qui ai créé ce fichier : les liens renvoient sur une base de données interne de l'entreprise via leur réseau grâce à des autorisations d'accès)

Pour le moment je me débrouille en copiant quelques cases sur une feuille vide : je fais la modification grâce à la macro, et je recopie à nouveau dans le fichier. J'avance lentement, mais certainement plus vite que si je devais faire les liens un à un.
Sauf que parfois, même avec très peu de case, il me bloque avec cette "erreur d'exécution '7': Mémoire insuffisante"

Si vous avez une idée pour que ça fonctionne mieux, je suis preneuse !
En attendant je continue avec ma technique....

Merci beaucoup de votre attention...
Finalement, peut être qu'en ajoutant juste l'information que la modification des liens se fait dans la colonne sélectionnée, je ne rencontrerais plus l'erreur ?
Sauf que je ne sais pas comment ajouter cette information dans la macro que j'utilise et que j'ai copié dans un message plus haut ...

Sub ModifierLiens()
Dim h As Hyperlink
For Each h In ActiveSheet.Hyperlinks
h.Address = Replace(h.Address, "\\xxx\", "https://xx.sharepoint.com/xx/")
Next
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour