[RÉSOLU] Masquer Démasquer des feuilles avec clic sur cellule

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 !

un internaute

XLDnaute Impliqué
Bonjour le forum,
J'ai ce code ci-dessous, comment pourrais-je afficher masquer en un clic sur cellule pour éviter bouton?
Merci pour vos éventuels retours
Cordialement

VB:
Option Explicit
Sub AfficherMasquerOnglets(Optional Affiche As Integer)
Dim Ws As Worksheet, Feuille As Worksheet, I As Integer
Dim LesFeuilles
 
  Application.ScreenUpdating = False
  Set Ws = ActiveSheet
 
  If Affiche = 0 Then
    Affiche = xlSheetVeryHidden
    For I = 1 To Sheets.Count
      If Sheets(I).Visible = xlSheetVeryHidden Then Affiche = True: Exit For
    Next I
  End If
 
  For Each Feuille In Sheets
    Select Case Feuille.Name
      Case "TOTO - TATA"
      Case Else
        With Feuille
          .Unprotect
          .Visible = Affiche
          .Protect
        End With
    End Select
  Next Feuille
End Sub
 
Re

Dans Feuil1 en colonne A, liste le noms des onglets, ensuite dans le module de la feuil1

VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
    If Not Intersect(R, Columns("A:A")) Is Nothing And R.Count = 1 Then
        For i = 2 To Sheets.Count
            If Sheets(i).Name = R.Value Then
                Sheets(i).Visible = True
               Sheets(i).Activate
            Else
                Sheets(i).Visible = False
            End If
        Next i
    End If
End Sub

'À mettre dans le module de ThisWorkbook
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim ws As Worksheet
  Cancel = True
  If Sh.Name = "Feuil1" Then Exit Sub
  For Each ws In Sheets
  If ws.Name <> "Feuil1" Then
  ws.Visible = False
  Else
  ws.Activate
  End If
  Next ws
End Sub
 
Dernière édition:
Re

Dans Feuil1 en colonne A, liste le noms des onglets, ensuite dans le module de la feuil1

VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
    If Not Intersect(R, Columns("A:A")) Is Nothing And R.Count = 1 Then
        For i = 2 To Sheets.Count
            If Sheets(i).Name = R.Value Then
                Sheets(i).Visible = True
               Sheets(i).Activate
            Else
                Sheets(i).Visible = False
            End If
        Next i
    End If
End Sub

'À mettre dans le module de ThisWorkbook
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim ws As Worksheet
  Cancel = True
  If Sh.Name = "Feuil1" Then Exit Sub
  For Each ws In Sheets
  If ws.Name <> "Feuil1" Then
  ws.Visible = False
  Else
  ws.Activate
  End If
  Next ws
End Sub
 
Bonjour le fil, le forum

All in one
(Tout en un pour les francophones)
A mettre dans ThisWorBook
VB:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim s As Worksheet
Cancel = -1: Application.DisplayAlerts = 0
For Each s In Worksheets
If InStr("TOTOTATA", s.Name) = 0 Then
s.Visible = Not s.Visible
End If
Next
End Sub
NB: Ici seules les feuilles nommées TOTO et TATA resteront visibles.
Donc adapter les noms en conséquence dans la ligne: If InStr(...
avec les noms des feuilles qui doivent rester visible.

EDITITON: Bonjour Lone-Wolf
 
Dernière édition:
Re

@un internaute

Un poil plus court. (Dicton d'un coiffeur ) 😉 😀

VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
    If Not Intersect(R, Columns("A:A")) Is Nothing And R.Count = 1 Then
        For i = 2 To Sheets.Count
            With Sheets(i)
                If .Name = R.Value Then .Visible = Not .Visible: .Activate
            End With
        Next i
    End If
End Sub
 
Bonjour Lone-wolf & Ce lien n'existe plus
Je me suis encore mal exprimé comme d'hab!!!
Ce lien n'existe plus => TOTO - TATA c'est la même feuille (TOTO = Nom du médecin et TATA nom du kiné (binôme)
Je veux pouvoir cliquer sur Cellule D3 de chaque Feuille pour Afficher/Masquer
J'ai dit à Lone-wolf que j'avais 7 feuilles c'est exact sauf que lorsqu'une série est complète elle s'ajoute ça passe à 8 , 9 feuilles ect...
Lorsqu'une série est complète je passe à la série suivante. C'est à dire par exemple TOTO - TATA devient TOTO - TATA 1
ainsi de suite...
Ce sont des séries de 24 séances et comme j'ai 6 séries par binôme ça peut durer des années!!!
Très compliqué sans fichier
Merci à vous deux
Bon dimanche
 
Bonjour un internaute, Jean Marie 🙂

Tu peux créer un classeur et mettre ich n'importe quoi (patates-citrouilles, cornichons etc) en exemple.
La tu parle de série, mais c'est quoi au juste?? 😵

Je veux pouvoir cliquer sur Cellule D3 de chaque Feuille pour Afficher/Masquer
Prenons exemple que la feuille active est TOTO, quand tu clique en D3, cette feuille doit se masquer ou pas?? 🙄

TOTO - TATA c'est la même feuille (TOTO = Nom du médecin et TATA nom du kiné (binôme)

Si j'ai bien compris ton 1er post, tu as un groupe(ou liste) de médecins et un groupe de kinés.
Là faudrait savoir. TOTO est un médecin ou un kiné ?? 🙄 Et tu trouve logique que TOTO et TATA c'est la même feuille?? 😕

lorsqu'une série est complète elle s'ajoute ça passe à 8 , 9 feuilles ect...
Donc, ici il faut créer une nouvelle feuille et la renommée.
 
Dernière édition:
- 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
10
Affichages
281
Réponses
5
Affichages
232
Réponses
7
Affichages
211
Réponses
4
Affichages
177
Retour