Excel / macro pour masquer et afficher feuil.

Résolu
Bonjour à tous et toutes,

J'espère que vous allez bien. Permettez-moi de commencer ce post par tirer mon chapeau aux « cadres » de ce site. Je suis un « habitué » de CCM et je suis tjrs surpris par la disponibilité dont ce que je nomme les cadres font preuve pour nous aider. Bien sur il y a toujours de nouveaux qui arrivent mais, je voudrais vraiment saluer ceux et celles qui donnent de leur temps pour nous aider...soyez en remercier...et en prenant le risque d'oublier les gens merci à vous chers : vaucluse, le pingou, gbinforme, mike-32, ériiic, raymond pentier, myta, m@rina, michel_m, pépé35530..pardon pour ceux que j'oublie...

Cela étant dit, j'ai une question pour tous.

Voici ma question : pourriez-vus m'aider à réaliser une macro pour masquer (une autre pour afficher) des feuilles dont le nom sur l'onglet commence par pfp_ ?

Dans mon classeur, j'ai plusieurs feuilles qui portent des noms différents.
La première feuille sert de menu. Je pensais mettre un bouton pour masquer et un bouton pour afficher les feuilles dont les noms commencent par pfp_

Une information qui à peut-être sont importance...j'ajoute régulièrement des feuilles dont le nom commence par pfp_

Merci de l'attention que vous porterez au présent post

Bien à vous

Berni///

6 réponses

  1. Bonjour,

    Sub Cache_Onglets()
    Dim wks As Worksheet
    For Each wks In Worksheets
    If Left(wks.Name, 4) = "pfp_" Then
    wks.Visible = False
    End If
    Next wks
    End Sub

    Sub Affiche_Onglets()
    Dim wks As Worksheet
    For Each wks In Worksheets
    If Left(wks.Name, 4) = "pfp_" Then
    wks.Visible = True
    End If
    Next wks
    End Sub

    Bonne suite
    1
    1. Bonjour Benj71

      Option Explicit
      Sub MasquerfeuillesPFP()
      Dim wsh As Worksheet
      
        For Each wsh In Worksheets
          If Left(wsh.Name, 4) = "pfp_" Then wsh.Visible = xlSheetHidden
        Next wsh
      
      End Sub
      
      Sub AfficherfeuillesPFP()
      Dim wsh As Worksheet
      
        For Each wsh In Worksheets
          If Left(wsh.Name, 4) = "pfp_" Then wsh.Visible = xlSheetVisible
        Next wsh
      
      End Sub
      
      0
      1. Bonjour messieurs,

        merci d'avoir accepter de répondre à mon problème.
        pourriez-vous me dire quelle différence y a-t-il entre les deux propositions et si l'une est "meilleure" que l'autre ?

        j'observe une différence ; là ou f894009 ecrit wks, patrice33740 ecrit wsh...qu'elle différence y a-t-il ?

        merci de votre eclairage au combien précieux...

        tres cdlmnt

        berni///
        0
        1. bonsoir à tous,

          je me permets de relancer le post afin de voir si l'un ou l'une d'entre vous peut apporter un eclairage par rapport à ma question.

          merci à vous...

          benri///
          0
          1. Bonsoir,

            Il n'y a aucune différence entre l'utilisation de wsh et wks.

            Quand on déclare une variable on peut lui donner le nom qu'on veut à condition de ne pas utiliser un nom réservé au langage : On aurait aussi bien pu utiliser Feuille (mais pas worksheet) .

            La différence réside plutôt dans l'utilisation des constantes nommées, f894009 utilise une des deux valeurs :
            - False
            - True

            Cela fonctionne très bien, mais pour ma part je préfère utiliser une des trois valeurs possibles :
            - xlSheetVisible
            - xlSheetHidden
            - xlSheetVeryHidden
            0
            1. merci patrice d'avoir apporter le complément d'info.

              tres cdlmnt,

              berni///
              0