Excel / macro pour masquer et afficher feuil.

Résolu/Fermé
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 - 5 mars 2012 à 15:54
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 - 7 mars 2012 à 21:46
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///
A voir également:

6 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
5 mars 2012 à 16:08
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
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
5 mars 2012 à 16:10
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
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 23
6 mars 2012 à 00:31
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
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 23
6 mars 2012 à 22:38
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
6 mars 2012 à 23:16
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
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 23
7 mars 2012 à 21:46
merci patrice d'avoir apporter le complément d'info.

tres cdlmnt,

berni///
0