afficher une feuille masqué

  • Initiateur de la discussion Initiateur de la discussion achraf26
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Bonsoir

Ce code doit fonctionner.
A mettre dans la feuille A

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Range("B1").Value = "start" Then
Sheets("B").Visible = True
Sheets("C").Visible = True
Sheets("D").Visible = True
Else
Sheets("B").Visible = False
Sheets("C").Visible = False
Sheets("D").Visible = False
End If

End Sub

@+
 
Bonsoir achraf26, Philippe, TBS,

Une autre solution :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a, e
Application.ScreenUpdating = False
a = Array("B", "C", "D")
For Each e In a
  Sheets(e).Visible = xlSheetVisible
Next
If LCase([B1]) <> "start" Then Sheets(a).Visible = xlSheetHidden 'xlSheetVeryHidden
End Sub
A+
 
Bonsoir achraf26, Philippe, TBS,

Une autre solution :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a, e
Application.ScreenUpdating = False
a = Array("B", "C", "D")
For Each e In a
  Sheets(e).Visible = xlSheetVisible
Next
If LCase([B1]) <> "start" Then Sheets(a).Visible = xlSheetHidden 'xlSheetVeryHidden
End Sub
A+
Bonjour Job,
Merci pour la réponse,
avec ce code , les feuilles ne sont pas sécurisés, on sait l'afficher avec bouton gauche de la souris
 
Bonjour à tous

Une feuille peut être:

HIDDEN, elle peut alors être rendue visible par un clic-droit

VERYHIDDEN, il faut alors modifier la propriété "Visible" dans les propriétés de la feuille

À+
Philippe

Edit:
Pour quelqu'un qui connait l'astuce, il pourra rendre les feuilles visibles même si le code est protégé
 
Bonjour

autre exemple pour 3 cas
Code:
Dim S(4) As Worksheet, n As Byte
Private Sub Worksheet_Change(ByVal R As Range)
    For n = 1 To 4
        Set S(n) = Sheets(Chr(65 + n)): S(n).Visible = 2
    Next
    Application.ScreenUpdating = 0 
    Select Case [B1]
        Case "Start1": S(1).Visible = 1: S(2).Visible = 1
        Case "Start2": S(3).Visible = 1: S(4).Visible = 1
        Case "Start3": S(1).Visible = 1: S(2).Visible = 1: S(3).Visible = 1: S(4).Visible = 1
    End Select
End Sub
 

Pièces jointes

Bonjour à tous,

Au post #8 il est dit "j'ai essayé de mettre Start3 pour feuille B-C-D-E"

Mais dans le fichier il est dit "Start1 normalement deverait ouvrir tous les feuilles".

Si c'est cette dernière proposition que l'on retient :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a, b, e
Application.ScreenUpdating = False
a = Array("B", "C")
b = Array("D", "E")
For Each e In Split(Join(a, Chr(1)) & Chr(1) & Join(b, Chr(1)), Chr(1))
  Sheets(e).Visible = xlSheetVisible
Next
If LCase([B1]) = "start1" Then Exit Sub
If LCase([B1]) <> "start2" Then Sheets(a).Visible = xlSheetHidden 'xlSheetVeryHidden
If LCase([B1]) <> "start3" Then Sheets(b).Visible = xlSheetHidden 'xlSheetVeryHidden
Me.Select
End Sub
Bonne journée.
 
Bonjour à tous,

Au post #8 il est dit "j'ai essayé de mettre Start3 pour feuille B-C-D-E"

Mais dans le fichier il est dit "Start1 normalement deverait ouvrir tous les feuilles".

Si c'est cette dernière proposition que l'on retient :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a, b, e
Application.ScreenUpdating = False
a = Array("B", "C")
b = Array("D", "E")
For Each e In Split(Join(a, Chr(1)) & Chr(1) & Join(b, Chr(1)), Chr(1))
  Sheets(e).Visible = xlSheetVisible
Next
If LCase([B1]) = "start1" Then Exit Sub
If LCase([B1]) <> "start2" Then Sheets(a).Visible = xlSheetHidden 'xlSheetVeryHidden
If LCase([B1]) <> "start3" Then Sheets(b).Visible = xlSheetHidden 'xlSheetVeryHidden
Me.Select
End Sub
Bonne journée.

Bonsoir job, merci pour le boulot
les feuilles fonctionnent corecctement à part ce n'est pas sécurisé on peut afficher les feuilles en cliquant sur la touche droite de la souris et on affiche les feuilles masquées
Merci
 
Bonjour

autre exemple pour 3 cas
Code:
Dim S(4) As Worksheet, n As Byte
Private Sub Worksheet_Change(ByVal R As Range)
    For n = 1 To 4
        Set S(n) = Sheets(Chr(65 + n)): S(n).Visible = 2
    Next
    Application.ScreenUpdating = 0
    Select Case [B1]
        Case "Start1": S(1).Visible = 1: S(2).Visible = 1
        Case "Start2": S(3).Visible = 1: S(4).Visible = 1
        Case "Start3": S(1).Visible = 1: S(2).Visible = 1: S(3).Visible = 1: S(4).Visible = 1
    End Select
End Sub

Merci ça fonctionne correctement, j'ai même réussi à rajouter une feuille nommé F j'ai mis S(5) ça fonctionnait, ma question est si j'ai plusieurs feuilles comment je vais savoir le numéro que je dois attribué à une feuille pour la controler ?
Merci pour votre aide
 
Re,

J'ai donné la solution plus haut,

Une feuille peut être:
VISIBLE
HIDDEN
VERYHIDDEN

Il faut utiliser la 3eme solution
........ et ne pas oublier de protéger le code.

Cette protection n'est pas 100% efficace.

À+
Philippe
 
Merci ça fonctionne correctement, j'ai même réussi à rajouter une feuille nommé F j'ai mis S(5) ça fonctionnait, ma question est si j'ai plusieurs feuilles comment je vais savoir le numéro que je dois attribué à une feuille pour la controler ?
Merci pour votre aide

L
Au bas de ton écran les noms des onglets apparaissent.
De la gauche vers la droite,
Le premier c'est le 1
Le second c'est le 2
Le ..........

À+
Philippe
 
Bonjour

autre exemple pour 3 cas
Code:
Dim S(4) As Worksheet, n As Byte
Private Sub Worksheet_Change(ByVal R As Range)
    For n = 1 To 4
        Set S(n) = Sheets(Chr(65 + n)): S(n).Visible = 2
    Next
    Application.ScreenUpdating = 0
    Select Case [B1]
        Case "Start1": S(1).Visible = 1: S(2).Visible = 1
        Case "Start2": S(3).Visible = 1: S(4).Visible = 1
        Case "Start3": S(1).Visible = 1: S(2).Visible = 1: S(3).Visible = 1: S(4).Visible = 1
    End Select
End Sub

Bonsoir, les feuilles que j'ai dans ma classeur ont temporairement un surnom... je vais changé le nom de la feuille par aprés, le problème j'ai nommé la feuille n°2 (B) = Bernard, y'a erreur d'execution, les feuilles seront pas numéroté. c'est la seule solution que j'ai pris pour commencer bien mon calsseur, je me suis bloqué dans ce cas de nomination ça changera tous
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
208
Réponses
11
Affichages
467
Réponses
2
Affichages
163
Réponses
10
Affichages
335
Réponses
7
Affichages
288
Retour