Vba Lien vers feuille Masquée Help!!

Daim

XLDnaute Nouveau
Bonjour à tous,

Alors voilà,


Je dois mettre en forme une fichier excel avec plusieurs onglets que je souhaiterais cacher.

J'ai créer un lien hypertexte vers chaque feuille dans ma feuille "sommaire" et je souhaiterais que lorsque l'on clique sur la cellule, cela ouvre l'onglet masqué et quune fois que l'on retourne sur sur la page sommaire la feuille soit masquée à nouveau.


J'ai trouvé cette macro qui me permet d'ouvrir l'onglet masqué mais pas de le re-masquer.
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim s As String
With Sheets(Split(Target.SubAddress, "!")(0))
If .Visible = False Then
.Visible = True
Application.Goto .Range(Split(Target.SubAddress, "!")(1))
End If
End With
End Sub


Ca fait deux jours que je cherche sur le net sans trouver de réelle solution :eek:.Je suis vraiment débutante en macro excel.

Merci pour votre aide.:eek:
 

Efgé

XLDnaute Barbatruc
Re : Vba Lien vers feuille Masquée Help!!

Bonjour Daim et bienvenue sur le forum,
Essaye ceci (à mettre dans le code la feuille sommaire (click droit sur l'onglet / Visualiser le code et colle la macro):
Code:
Private Sub Worksheet_Activate()
Dim f As Worksheet
For Each f In ThisWorkbook.Worksheets
    If f.Name <> "sommaire" Then
        If f.Visible = True Then f.Visible = False
    End If
Next f
End Sub

Ps: La prochaine foi n'oubli pas de poster un petit fichier exemple, c'est plus simple pour tous le monde ;).
Cordialement
 

Efgé

XLDnaute Barbatruc
Re : Vba Lien vers feuille Masquée Help!!

Re
Une erreur dans mon code précédent :
Code:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Sheets("Sommaire").Visible = True
Dim f As Worksheet
For Each f In ThisWorkbook.Worksheets
    If f.Name <> "sommaire" Then
       If f.Visible = True Then f.Visible = False
    End If
Next f
Application.ScreenUpdating = True
End Sub
Désolé
 

Daim

XLDnaute Nouveau
Re : Vba Lien vers feuille Masquée Help!!

La proposition de Roro69 marche au poil, (en complétant avec ma précédente macro)c'est exactement ça!

Efgé, j'ai essayé ta solution mais ça ne donne rien.

Merci à tous de votre aide et de votre réactivité!! :D
 

Marine64110

XLDnaute Nouveau
Re : Vba Lien vers feuille Masquée Help!!

Bonjour à tous !

J'ai un petit souci avec une macro que j'ai créée...
Je vous explique le contexte : j'ai un onglet Sommaire avec une liste de liens hypertextes qui renvoient à d'autres onglets, qui sont masqués.
Vu que ces onglets sont masqués, j'ai d'abord eu un problème pour faire fonctionner les liens hypertextes présent dans le Sommaire. J'ai donc créé cette macro (que j'ai trouvée sur cette discussion) :

Code:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim s As String
With Sheets(Split(Target.SubAddress, "!")(0))
If .Visible = False Then
.Visible = True
Application.Goto .Range(Split(Target.SubAddress, "!")(1))
End If
End With
End Sub

Apparemment cette macro a résolu les problèmes de pas mal de gens dans le même cas que moi, mais pour ma part j'ai une erreur d'exécution 9 "L'indice n'appartient pas à la sélection".
Apparemment c'est la ligne
Code:
With Sheets(Split(Target.SubAddress, "!")(0))
qui pose problème.

Des idées ? Merci ;)
 

Modeste

XLDnaute Barbatruc
Re : Vba Lien vers feuille Masquée Help!!

Bonjour Marine64110 et bienvenue,

On ne le dira jamais assez, un extrait du fichier, sans données confidentielles nous aide à comprendre et permet, le cas échéant, de tester une solution avant de la soumettre ici.

Au tout début du code, ajoute cette ligne:
Code:
nomFeuille = Split(Target.SubAddress, "!")(0)
Place un point d'arrêt sur cette même ligne
Dans la feuille "Sommaire", clique sur un des liens ... une fois revenue dans le vbe, appuie une fois sur la touche F8
Quelle est la valeur de la variable nomFeuille? Cette valeur correspond-t-elle au nom d'une de tes feuilles?

Y aurait-il des espaces dans les noms de tes onglets?
 
Dernière édition:

Marine64110

XLDnaute Nouveau
Re : Vba Lien vers feuille Masquée Help!!

Merci pour ta réactivité Modeste :)

J'ai testé ta solution. Quand je clique sur un de mes liens puis que j'appuie une fois sur F8, la ligne
Code:
With Sheets(Split(Target.SubAddress, "!")(0))
est surlignée en jaune.

Et oui, il y a des espaces dans les noms de mes onglets... Est-ce que ça peut être la cause du problème?

Merci :)
 

Marine64110

XLDnaute Nouveau
Re : Vba Lien vers feuille Masquée Help!!

Je crois avoir trouvé la solution à mon problème !

J'ai écris le code suivant :

Code:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Dim s As String
    Dim cellules As String
    Dim Feuille As String
    Dim lienSplit() As String
    
    lienSplit = Split(Target.SubAddress, "!")
    If UBound(lienSplit) >= 1 Then
        Feuille = Replace(lienSplit(0), "'", "")
        cellules = lienSplit(1)
        With Sheets(Feuille)
        If .Visible = False Then
        .Visible = True
        Application.Goto .Range(cellules)
        End If
        End With
    Else
     MsgBox ("Lien non valide... " & Target.SubAddress)
    End If
End Sub

Et ça marche :D

Merci quand même d'avoir répondu à mon appel à l'aide, bonne journée :)
 

Modeste

XLDnaute Barbatruc
Re : Vba Lien vers feuille Masquée Help!!

la ligne [...] est surlignée en jaune
Jusque là, rien que de très normal :) ma question était quelle est la valeur de la variable "nomFeuille"? à cet instant précis.

Ce que j'imagine, s'il y a des espaces dans les noms de tes feuilles, c'est qu'Excel ajoute une apostrophe devant et derrière les noms de ces onglets. Clique droit sur un de tes liens > Modifier le lien hypertexte ... et regarde les noms de feuilles dans cette boîte de dialogue


Si, dans les noms des onglets, tu n'en as pas qui contiennent des apostrophes (dans le genre C'est Noël ou T'es pas au courant), tu peux peut-être contourner l'obstacle en remplaçant l'instruction incriminée pas
Code:
With Sheets(Replace(Split(Target.SubAddress, "!")(0), "'", ""))

[Edit:] pas rafraîchi avant de poster ... visiblement on était sur la même piste!
 

Marine64110

XLDnaute Nouveau
Re : Vba Lien vers feuille Masquée Help!!

Ca marche nickel !!

Je pense que c'est équivalent au code que j'ai réécrit juste avant ta réponse Modeste. Mais c'est plus simple, et en plus je comprends mieux :)

Dire que je m'arrache les cheveux depuis ce matin pour une simple histoire de guillemets...

Merci beaucoup !
 

Discussions similaires

Statistiques des forums

Discussions
312 082
Messages
2 085 171
Membres
102 805
dernier inscrit
emes