Microsoft 365 Afficher onglet selon valeur cellule via un bouton de validation

MACx

XLDnaute Occasionnel
Bonjour les Experts,

Novice en VBA (mais je progresse...grâce à vous!)
Je cherche à afficher un onglet (parmi plusieurs masqués) selon la valeur d'un cellule (qui correspond au nom de l'onglet.

Exemple de ce que je veux réellement obtenir comme résultat.

Lorsque j'ouvre mon fichier Excel, seul un onglet est affiché par défaut (onglet "Accueil")

Dans une cellule (G10), j'ai une liste déroulante des onglets existant (mais qui sont tous masqués).
A la sélection d'une valeur dans cette liste, je clique sur un bouton "Valider" situé juste à droite (principe d'une recherche)
Au moment du Click, l'onglet "Accueil" se masque à son tour puis l'onglet nommé en G10 s'affiche.

Bien sûr chaque onglet aura un bouton "Revenir à l'accueil", qui fera l'effet inverse de la procédure citée ci-avant (fermer l'onglet actif et réafficher l'onglet accueil).

Un grand merci d'avance pour votre aide et votre temps consacré.

MACx
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour MACx,
Un essai en PJ.
Il suffit de choisir la feuille désirée pour y aller. Un bouton n'est pas utile. Avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [G10]) Is Nothing Then
        If Target = "" Then Exit Sub
        Application.ScreenUpdating = False
        For Each F In Worksheets
            SheetName = Target
            Sheets(SheetName).Visible = True
            If F.Name <> Target Then
                Sheets(F.Name).Visible = 2
            End If
        Next F
    End If
Fin:
Application.ScreenUpdating = True
End Sub
Sub Home()
    ' Masque toute feuille, retour à la feuille Acceuil
    Application.ScreenUpdating = False
    For Each F In Worksheets
        Sheets("Accueil").Visible = True
        If F.Name <> "Accueil" Then
            Sheets(F.Name).Visible = 2
        End If
    Next F
End Sub
 

Pièces jointes

  • MACx.xlsm
    24.4 KB · Affichages: 6

MACx

XLDnaute Occasionnel
Bonjour @sylvanou,
Merci pour ton aide et retour très rapide.
Solution très efficace, mais justement je souhaitais un bouton car avant de valider (en cliquant sur ce bouton) il y'a des informations qui s'afficheront sur cette page accueil.
Merci encore ! 👍
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Il suffit d'accrocher la macro à un bouton, et cela simplifie la macro :
Code:
Sub Valider()
    On Error GoTo Fin: Target = [G10]
    Application.ScreenUpdating = False
    Sheets(Target).Visible = True
    For Each F In Worksheets
        If F.Name <> Target Then Sheets(F.Name).Visible = 2
    Next F
Fin:
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • MACx2.xlsm
    25.4 KB · Affichages: 4

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 097
Messages
2 116 186
Membres
112 679
dernier inscrit
Yupanki