Cacher feuilles en fonction de valeur de deux cellules [Résolu]

Messages postés
3
Date d'inscription
mardi 31 janvier 2012
Statut
Membre
Dernière intervention
31 janvier 2012
- - Dernière réponse : miremate
Messages postés
3
Date d'inscription
mardi 31 janvier 2012
Statut
Membre
Dernière intervention
31 janvier 2012
- 31 janv. 2012 à 18:37
Bonjour,

J'ai un fichier excel avec une trentaine de feuilles. J'ai besoin d'une macro qui cache toutes les feuilles du livre à l'exception de deux feuilles dont le nom (exact) est mentionné sur les cellules A35 et A36, et aussi de deux autres feuilles bien définies qui ne doivent pas non plus être cachées. Les valeurs des cellules A35 et A36 sont le résultat de formules (concatener).

Merci d'avance.
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
3
Date d'inscription
mardi 31 janvier 2012
Statut
Membre
Dernière intervention
31 janvier 2012
3
Merci
OK, j'ai aussi trouvé une autre solution: je remplace
ws.Visible = False
par:
ws.Visible = xlVeryHidden
et je bloque le projet vba par mot de passe pour que les utilisateurs ne puissent pas acceder à la macro.

Merci!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Commenter la réponse de miremate
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
211
0
Merci
Bonjour,
Oui ?
Et à quel niveau se situe donc ta difficulté ? ===>>
1) lire le contenu de ces deux cellules ? (j'espère que non, tout de même !)
ou
2) parcourir la collection Worksheets, extraire la propriété Name de chacune, et prendre la décision d'affecter la valeur false à la propriété visible de celles que tu ne veux pas voir ?




____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
3
Date d'inscription
mardi 31 janvier 2012
Statut
Membre
Dernière intervention
31 janvier 2012
0
Merci
En fait, voila où j'en suis (voir code collé ci-dessous):
Ça marche bien à condition que je ne bloque pas le livre, mais le problème est que je ne veux pas que les utilisateurs puissent rendre visibles les feuilles cachées. Une suggestion?

Private Sub worksheet_change(ByVal target As Excel.Range)
Dim ws As Worksheet

For Each ws In Worksheets
If ws.Name <> "FORMULARIO" And ws.Name <> "ESPECIFICACION TECNICA" And ws.Name <> Worksheets("FORMULARIO").Range("B32").Value And ws.Name <> Worksheets("FORMULARIO").Range("B33").Value Then
ws.Visible = False
End If
If ws.Name = Worksheets("FORMULARIO").Range("B32").Value Then
ws.Visible = True
End If
If ws.Name = Worksheets("FORMULARIO").Range("B33").Value Then
ws.Visible = True
End If
Next ws

End Sub
Commenter la réponse de miremate
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
211
0
Merci
Tiens, en bâclé :
En plus de ce que tu as déjà fait :

Private Sub Worksheet_Activate()
  ActiveSheet.Visible = False
End Sub

sur les feuilles que tu veux garder cachées.
Et même si l'utilisateur cherche à jouer sur les onglets (les sélectionner tous, puis rendre tout visible), il l'aura dans le baba


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
211
0
Merci
J'ai dit "bâclé" ===>>
Joue donc sur l'évènement Workbook_SheetActivate en utilisant le paramètre sh au lieu de mettre ton code sur chaque feuille
Et tu pux en plus y coller un code similaire à celui que tu as écrit
Allez. Je te laisse faire ce petit truc


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu