XL 2019 Copier lien hypertext dans un même classuer

FBR974

XLDnaute Nouveau
Bonjour à toutes et tous,

Pourriez-vous m'aider ?
Comment copier un lien hypertext (ce lien renvoie vers une autre cellule de la même feuille de classeur) dans une autre feuille du même classeur de façon à ce que la source soit modifié automatiquement.
Exemple : un lien hypertexte de la feuille 1 d'un classeur m'envoie sur la cellule AO1 de la même feuille (ceci pour arriver plus rapidement à un endroit préci de la feuille)
Lorsque je copie l'integralité de la feuille1 vers une nouvelle feuille (2). Le lien hypertexte est aussi copié mais il me renvoie sur la feuille 1. Alors que j'aimerais qu'il me renvoie a la cellule AO1 de la feuille 2.
Comment faire ce copier/coller sans avoir a préciser manuellement qu'il me renvoie bien à la cellule de la page copié.

En souhaitant que mon explication soit claire ?
Merci,
Frédéric
 
Solution
Bonsoir FBR, Job,
Une autre approche sans VBA.
1- Nommer A1 Cellule et A2 NomFeuille ( par ex )
2- En A1 mettre AO1
3- En A2 :
VB:
=STXT(CELLULE("nomfichier";Cellule);TROUVE("]";CELLULE("nomfichier";Cellule))+1;20)
Pour créer un lien feuille qui sera actif sur la feuille courante, mettre :
Code:
=LIEN_HYPERTEXTE("#'"&NomFeuille&"'!"&Cellule;"Lien")
Si on duplique la feuille, le lien reste sur la feuille courante.

job75

XLDnaute Barbatruc
Bonjour FBR974, bienvenue sur XLD,

Il faut une macro, allez dans VBA par les touches Alt+F11.

En haut à gauche double-cliquez sur ThisWorkbook et à droite collez ce code :
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim h As Hyperlink, p%, x$
Application.EnableEvents = False 'désactive les évènements
For Each h In Sh.Hyperlinks
    p = InStr(h.SubAddress, "!")
    If p Then
        x = "'" & Sh.Name & "'!" & Mid(h.SubAddress, p + 1)
        If InStr(Sh.Name, " ") = 0 And Not IsNumeric(Sh.Name) Then x = Replace(x, "'", "")
        h.SubAddress = x
        h.Parent = x
    End If
Next
Application.EnableEvents = True 'réactive les évènements
End Sub
La macro se déclenche quand on modifie ou valide une cellule quelconque.

A+
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir FBR, Job,
Une autre approche sans VBA.
1- Nommer A1 Cellule et A2 NomFeuille ( par ex )
2- En A1 mettre AO1
3- En A2 :
VB:
=STXT(CELLULE("nomfichier";Cellule);TROUVE("]";CELLULE("nomfichier";Cellule))+1;20)
Pour créer un lien feuille qui sera actif sur la feuille courante, mettre :
Code:
=LIEN_HYPERTEXTE("#'"&NomFeuille&"'!"&Cellule;"Lien")
Si on duplique la feuille, le lien reste sur la feuille courante.
 

Pièces jointes

  • Liens.xlsx
    10.2 KB · Affichages: 10

Discussions similaires

Statistiques des forums

Discussions
312 109
Messages
2 085 381
Membres
102 876
dernier inscrit
BouteilleMan