Fonction Vlookup + Hyperlink

c

a:

Bonsoir,

Je ne pense pas que la propriété "Address" soit pertinente pour un lien sur serveur "\\Ogidoc1\Doc OGI\" . Elle est en principe utilisée pour un lien externe tel qu'un site Web par exemple.

Il faut utiliser la propriété "SubAddress".

a

Je ne suis pas devin et j'ai répondu en fonction des éléments que tu mets à disposition.

a

Bonsoir,

Votre exemple manque de précision. On ne voit pas le rapport entre les liens de l'onglet " "Lien FS" et ceux des onglets 1&2.

a

Les références FS1017,FS1052,FS1107 et FS1112 sont commune au onglet 1 et 2.

Très bien, mais aucune de ces références n'existe dans les onglets 1 et 2.

a

Bonjour,

ci-dessous code

Option Explicit

Sub modif_liens()
    Dim F_ref As Worksheet, sh As Worksheet
    Dim liens As Object, lien As Hyperlink

    '// assignation feuille de référence des nouveaux liens
    Set F_ref = Sheets("Lien FS")

    '// stockage des nouveaux liens dans une collection avec pour clé le nom du lien et élément l'adresse du lien
    Set liens = CreateObject("Scripting.Dictionary")
    For Each lien In F_ref.Hyperlinks: liens(lien.Name) = lien.Address: Next lien

    '// remplacement des liens
    For Each sh In Worksheets
        If sh.Name <> F_ref.Name Then
            For Each lien In sh.Hyperlinks
                 If liens.exists(lien.Name) Then lien.Address = liens(lien.Name)
            Next lien
        End If
    Next sh

End Sub

a

a

Top ca fonctionne top top top sur la moitié de mes liens mais sur certain etrangement ca me met un lien assez etrange

A mon avis, certains de tes liens à remplacer ont une adresse locale et non une adresse externe, ce qui signifie que dans ce cas, c'est la propriété "SubAddress" qui est active, et non la propriété "Address".

Cette nouvelle version du code devrait résoudre le problème :

Sub modif_liens()
    Dim F_ref As Worksheet, sh As Worksheet
    Dim liens As Object, lien As Hyperlink

    '// assignation feuille de référence des nouveaux liens
    Set F_ref = Sheets("Lien FS")

    '// stockage des nouveaux liens dans une collection avec pour clé le nom du lien et élément l'adresse du lien
    Set liens = CreateObject("Scripting.Dictionary")
    For Each lien In F_ref.Hyperlinks: liens(lien.Name) = Array(lien.Address, lien.SubAddress): Next lien

    '// remplacement des liens
    For Each sh In Worksheets
        If sh.Name <> F_ref.Name Then
            For Each lien In sh.Hyperlinks
                 If liens.exists(lien.Name) Then lien.Address = liens(lien.Name)(0): lien.SubAddress = liens(lien.Name)(1)
            Next lien
        End If
    Next sh

End Sub

a

Bonjour,

Essayer dans votre classeur de mise à jour de décocher l'option d'adresse relative pour les liens Hyperlinks.

options --> options avancées --> Général --> Options Web --> onglet Fichiers --> décocher "mettre à jour les liens lors de l'enregistrement"

Par défaut l'adresse relative est activée. Lorsque le lien est inclus dans le répertoire où est situé le classeur, l'adresse complète n'est pas enregistrée, seule l'adresse relative par rapport au répertoire du classeur est enregistrée.

Lorsque vous construisez vos liens de références, il se peut donc que des adresses relatives soient enregistrées et non des adresses complètes. Si vous désactivez l'option ci-dessus, vous n'enregistrerez que des adresses complètes.

a

Rechercher des sujets similaires à "fonction vlookup hyperlink"