Accès onglets masqués par liens hypertexte
Résolu
Fat17
Messages postés
90
Statut
Membre
-
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à accéder à tous mes onglets masqués (55) à partir du seul onglet visible "o" qui contient les liens hypertexte vers tous les onglets masqués pour les ouvrir à la demande. Les onglets ainsi ouverts devraient le rester jusqu'à l'enregistrement et la fermeture du fichier. A la réouverture du fichier, seul l'onglet "o" est visible et ainsi de suite.
Merci pour votre précieuse collaboration
Fat
Je cherche à accéder à tous mes onglets masqués (55) à partir du seul onglet visible "o" qui contient les liens hypertexte vers tous les onglets masqués pour les ouvrir à la demande. Les onglets ainsi ouverts devraient le rester jusqu'à l'enregistrement et la fermeture du fichier. A la réouverture du fichier, seul l'onglet "o" est visible et ainsi de suite.
Merci pour votre précieuse collaboration
Fat
4 réponses
-
Si les onglets sont masqués par un code VBA, il faut modifier le code.
-
Bonsoir,
Je compte masquer les onglets manuellement (clic droit / masquer)
S’il y a une solution pour l’ensemble du problème en VBA, je ne suis pas en mesure de la trouver. C’est pourquoi je sollicite votre aide.
Cordialement
Fat -
Bonjour,
Code à placer dans le module de la feuille "o", pour faire suivre le lien en démasquant la feuille :Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim f As String Dim c As String f = Replace(Split(Target.SubAddress, "!")(0), "'", "") c = Split(Target.SubAddress, "!")(1) Sheets(f).Visible = 1 Sheets(f).Activate Sheets(f).Range(c).Activate End Sub
Code à placer dans le module du classeur (Workbook) pour enregistrer le fichier avec les feuilles masquées (et s'il ne s'agit pas d'une fermeture du fichier, ré-afficher les mêmes feuilles) :Option Explicit Private fermer As Boolean Private liste As String Private Sub Workbook_BeforeClose(Cancel As Boolean) fermer = True End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim i As Integer Application.ScreenUpdating = False i = ActiveSheet.Index Call MasquerFeuilles Application.EnableEvents = False ThisWorkbook.Save Application.EnableEvents = True Cancel = True If Not fermer Then Call AfficherFeuilles Worksheets(i).Activate End If ThisWorkbook.Saved = True fermer = False Application.ScreenUpdating = True End Sub Private Sub AfficherFeuilles() Dim w As Worksheet Dim t As Variant Dim i As Integer t = Split(liste & ":", ":") For i = LBound(t) To UBound(t) If t(i) > "" Then Worksheets(t(i)).Visible = xlSheetVisible Next i End Sub Private Sub MasquerFeuilles() Dim w As Worksheet With Worksheets("o") .Visible = xlSheetVisible .Activate liste = .Name For Each w In Worksheets If w.Index <> .Index Then If w.Visible = xlSheetVisible Then liste = liste & ":" & w.Name End If w.Visible = xlSheetHidden End If Next w End With End Sub -
Bonjour,
Merci Patrice pour la solution proposée qui fonctionne très bien.
Cordialement
Fat