Double clic pour afficher Masquer plusieurs onglets cellule A3

Bonjour le forum

Tout est dans le tritre

Les feuilles seront exhaustives au fur à mesure des années

Noms onglets: Retraites 2018 Retraites 2019

Merci pour vos éventuels retours

Bien à vous

Bonjour

Quelque chose comme ça ? J'adapterais le code pour un double clic si déjà c'est bien ce que tu cherches

16al87.xlsm (17.83 Ko)

Bonjour GGautier

Oui un double clic

J'ai trouvé ça un un simple clic mais comme je n'ai pas de feuilles "Retraites" j'ai mis "Retraites 2019" et ça le fait bien

mais il va falloir que je change 2019 par 2020 l'année prochaine

Paut-être à adapter la macro avec un DoubleClic

Je suis sous EXCEL 2003

Cordialement

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 "Retraites 2019"
      Case Else
        With Feuille
          .Unprotect
          .Visible = Affiche
          .Protect
        End With
    End Select
  Next Feuille
End Sub

Voilà la macro avec double clic :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Sheets("Feuil1").Range("A3")) Is Nothing Then Exit Sub
Sheets("Feuil2").Visible = False
End Sub

Après si tu veux on peux écrie en A3 le nom de la feuille à masquer !

Re- GGautier

Super mais je veux bien ce que tu proposes mais pas en A3 mais A2

Cordialement

Bonjour le forum

Double clic avec cette macro possible ou autre macro moins compliquée?

Car il faut que j'ajoute en 2020 la nouvelle année sinon c'est 2019 qui va s'afficher enfin je pense

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 "Retraites 2019"   'Modifier année pour la dernière feuille
      Case Else
        With Feuille
          .Unprotect
          .Visible = Affiche
          .Protect
        End With
    End Select
  Next Feuille
End Sub

Ce n'est pas cellule A3 mais A2

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal R As Range)
  If R.Address = "$A$2" And R.Count = 1 Then AfficherMasquerOnglets: Range("A1").Select
End Sub

Cordialement à vous

Oui il y a cette macro qui fait très bien l'affaire ! Je l'ai modifié avec la bonne cellule et la bonne page à masquer :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Sheets("Feuil1").Range("A2")) Is Nothing Then Exit Sub
Sheets("Retraites 2019").Visible = False
End Sub

Ou sinon, si tu veux choisir le nom de la feuille à masquer, tu écris en A2 le nom de la feuille concerné :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Sheets("Feuil1").Range("A2")) Is Nothing Then Exit Sub
Sheets(Feuil1.range("A2")).Visible = False
End Sub

Je te propose même une autre solution dans les fichiers joints :

9masquer.xlsm (18.15 Ko)
13masquer.xlsm (19.01 Ko)

re GGautier et merci pour tout

Mis de côté tes exemples qui serviront un jour.

Bonne fin d'après-midi à toi et au forum

Cordialement

Rechercher des sujets similaires à "double clic afficher masquer onglets"