XL 2021 Lien Hypertexte et feuilles masquées

Yacine

XLDnaute Occasionnel
Bonsoir,

Je voudrais si possible quand je clique sur un lien hypertexte qui pointe sur une feuille (Onglet) masquée cette feuille s'affiche et quand je retourne sur la feuille Accueil elle se masque automatiquement, dans mon exemple joint je voudrais masquer tous les onglets sauf Accueil et donc quand je clique sur les liens hypertextes les feuilles s'affichent puis se masquent dès que je retourne sur la feuille "Accueil".

Un grand MERCI par avance et bonne soirée.
 

Pièces jointes

  • Pays.xlsx
    27 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bonjour Tacine, Eric KERGRESSE, le forum,

Pour faire ce que vous voulez faire il faut que les liens soient de vrais liens hypertextes.

Les liens créés par la fonction LIEN_HYPERTEXTE n'en sont pas.

Voyez donc le fichier joint et ces 3 macros dans le code de la feuille "Accueil" :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [I14]) Is Nothing Then Exit Sub
Dim r As Range, x As Variant
Application.ScreenUpdating = False
Application.EnableEvents = False
Set r = [J15:J83]
r.Hyperlinks.Delete 'RAZ
For Each r In r
    x = Application.VLookup(r(1, 0), Range("B:D"), 3, 0)
    If Not IsError(x) Then Hyperlinks.Add r, "", "'" & x & "'!A1", TextToDisplay:=x 'crée le lien
Next
Application.EnableEvents = True
End Sub

Private Sub Worksheet_Followhyperlink(ByVal h As Hyperlink)
Evaluate(h.SubAddress).Parent.Visible = xlSheetVisible
Application.Goto Evaluate(h.SubAddress)
End Sub

Private Sub Worksheet_Activate()
Dim s As Object
For Each s In Sheets
    If s.Name <> Me.Name Then s.Visible = xlSheetHidden 'masque les feuilles
Next
End Sub
A+
 

Pièces jointes

  • Pays.xlsm
    38.2 KB · Affichages: 7

Yacine

XLDnaute Occasionnel
Bonjour Tacine, Eric KERGRESSE, le forum,

Pour faire ce que vous voulez faire il faut que les liens soient de vrais liens hypertextes.

Les liens créés par la fonction LIEN_HYPERTEXTE n'en sont pas.

Voyez donc le fichier joint et ces 3 macros dans le code de la feuille "Accueil" :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [I14]) Is Nothing Then Exit Sub
Dim r As Range, x As Variant
Application.ScreenUpdating = False
Application.EnableEvents = False
Set r = [J15:J83]
r.Hyperlinks.Delete 'RAZ
For Each r In r
    x = Application.VLookup(r(1, 0), Range("B:D"), 3, 0)
    If Not IsError(x) Then Hyperlinks.Add r, "", "'" & x & "'!A1", TextToDisplay:=x 'crée le lien
Next
Application.EnableEvents = True
End Sub

Private Sub Worksheet_Followhyperlink(ByVal h As Hyperlink)
Evaluate(h.SubAddress).Parent.Visible = xlSheetVisible
Application.Goto Evaluate(h.SubAddress)
End Sub

Private Sub Worksheet_Activate()
Dim s As Object
For Each s In Sheets
    If s.Name <> Me.Name Then s.Visible = xlSheetHidden 'masque les feuilles
Next
End Sub
A+
Bonjour, C'est vraiment ce que je voulais. MERCI+++
 

Discussions similaires

Réponses
5
Affichages
498

Statistiques des forums

Discussions
315 089
Messages
2 116 099
Membres
112 661
dernier inscrit
ceucri