XL 2019 activer une feuille cachée avec un lien hypertext dans une autre feuille en vba

nanodelune

XLDnaute Nouveau
bonjour, je ne suis pas un surdoué en VBA donc j'ai besoin d'aide.
J'ai créé des fiches de notation d'élèves par Exercice de TP.
et une fiche par élève que je voudrais cacher pour la clarté de l'utilisation
en gros, je créé un TP, cela me donne un formulaire de notation du TP avec les élèves concernés (selon la classe). pour accéder à la fiche élève à partir de mon formulaire TP, j'ai créé automatiquement un lien hypertext vers la fiche de l'élève.
si je cache les fiches élèves, les liens ne fonctionne plus.
ma question est: existe-t-il un code vba pour activer la fiche éleve lorsque je clique sur le lien Hypertext de cet élève dans ma fiche TP?
merci pour vos idées
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Nanodelube,
Un essai en PJ avec une gestion un peu différente.
On a une liste de prénoms, quend on clic sur un prénom toutes les feuilles sont masquées et la feuille correspondante est visible.
Quand on fait retour, on revient sur la feuille Entéte et le reste est masqué.
Avec :
Code:
Sub Worksheet_Activate() ' Exécutée sur selection feuille Entete
    MasqueTout
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' Sur clic prénom
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("C6:C11")) Is Nothing Then
        MasqueTout
        Sheets(Target.Value).Visible = Visible  ' Démasque la feuille qui porte le nom de la cellule cliquée
        Sheets(Target.Value).Select
    End If
Fin:
End Sub
Sub MasqueTout() ' Masque toutes les feuilles sauf Entete
    For Each F In Worksheets
        If F.Name <> "Entete" Then Sheets(F.Name).Visible = xlSheetVeryHidden
    Next F
End Sub
 

Pièces jointes

  • Nanodelune.xlsm
    20.6 KB · Affichages: 1
Dernière édition:

nanodelune

XLDnaute Nouveau
bonjour, je ne suis pas un surdoué en VBA donc j'ai besoin d'aide.
J'ai créé des fiches de notation d'élèves par Exercice de TP.
et une fiche par élève que je voudrais cacher pour la clarté de l'utilisation
en gros, je créé un TP, cela me donne un formulaire de notation du TP avec les élèves concernés (selon la classe). pour accéder à la fiche élève à partir de mon formulaire TP, j'ai créé automatiquement un lien hypertext vers la fiche de l'élève.
si je cache les fiches élèves, les liens ne fonctionne plus.
ma question est: existe-t-il un code vba pour activer la fiche éleve lorsque je clique sur le lien Hypertext de cet élève dans ma fiche TP?
merci pour vos idées
super merci beaucoup, y compris pour la rapidité de la réponse.
Je pense que je devrais réussir à adapter ton code. En attendant, j'ai tout simplement masqué la barre d'onglets avec:
ActiveWindow.DisplayWorkbookTabs = False

ca va pas non plus
en tout cas, ça va me laisser de quoi travailler les neurones. MERCIIII
 

nanodelune

XLDnaute Nouveau
Bonsoir Nanodelube,
Un essai en PJ avec une gestion un peu différente.
On a une liste de prénoms, quend on clic sur un prénom toutes les feuilles sont masquées et la feuille correspondante est visible.
Quand on fait retour, on revient sur la feuille Entéte et le reste est masqué.
Avec :
Code:
Sub Worksheet_Activate() ' Exécutée sur selection feuille Entete
    MasqueTout
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' Sur clic prénom
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("C6:C11")) Is Nothing Then
        MasqueTout
        Sheets(Target.Value).Visible = Visible  ' Démasque la feuille qui porte le nom de la cellule cliquée
        Sheets(Target.Value).Select
    End If
Fin:
End Sub
Sub MasqueTout() ' Masque toutes les feuilles sauf Entete
    For Each F In Worksheets
        If F.Name <> "Entete" Then Sheets(F.Name).Visible = xlSheetVeryHidden
    Next F
End Sub
salut Sylvanu.
un peu tardivement, j'ai finalement opté pour unun bouton qui me cache tous les onglets sauf celui actif avec ce code:
Sub MontreCacheOnglets()
If ActiveWindow.DisplayWorkbookTabs = False Then
ActiveWindow.DisplayWorkbookTabs = True
Else
ActiveWindow.DisplayWorkbookTabs = False
End If
End Sub
et en nommant les feuilles, par exemple sheets(Mafeuille) on peut lui appliquer des changements sans qu'elle soit active.
en tous cas merci pour ta réponse, ça m'a bien inspiré.
 

Discussions similaires