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

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
 

Lone-wolf

XLDnaute Barbatruc
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:

un internaute

XLDnaute Impliqué
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
 

Staple1600

XLDnaute Barbatruc
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:

Lone-wolf

XLDnaute Barbatruc
Re

@un internaute

Un poil plus court. (Dicton d'un coiffeur ) ;) :D

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
 

un internaute

XLDnaute Impliqué
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
 

Lone-wolf

XLDnaute Barbatruc
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?? o_O

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?? :rolleyes:

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é ?? :rolleyes: Et tu trouve logique que TOTO et TATA c'est la même feuille?? :confused:

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:

Discussions similaires

Réponses
2
Affichages
201

Statistiques des forums

Discussions
312 104
Messages
2 085 344
Membres
102 865
dernier inscrit
FreyaSalander