Masque feuilles selon la valeur d'une cellule

Résolu/Fermé
Barbadouste Messages postés 4 Date d'inscription jeudi 23 août 2018 Statut Membre Dernière intervention 23 août 2018 - 23 août 2018 à 11:41
Barbadouste Messages postés 4 Date d'inscription jeudi 23 août 2018 Statut Membre Dernière intervention 23 août 2018 - 23 août 2018 à 15:40
Bonjour,

Je voudrais réaliser un filtre sur excel mais je ne suis pas assez calé dans le domaine.
J'ai plusieurs feuilles avec pour nom les différents mois de l'année.
Dans chaque feuille j'ai une cellule (au même emplacement pour chaque feuille) indiquant une valeur.
Dans une feuille "Synthèse" je réalise la somme de ces valeurs présentent dans toutes les feuilles (ex : =3+1+4+0+5+0....
Ce que je voudrais réaliser c'est qu'en cliquant sur la cellule indiquant la somme totale, les feuilles ayant une cellule avec un 0 dedans soient masquées.

J'espère avoir été assez clair.

Je vous remercie pour votre aide.

1 réponse

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 23 août 2018 à 14:53
Bonjour,

en vba faire AltF11 pour accéder à l'éditeur.

ensuite cliquez dans la feuille synthèse en haut à gauche et mettre ce code :

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("A1")) Is Nothing Then 'cellule à adapter
'Déclare la variable objet Worksheet
Dim Ws As Worksheet
'Boucle sur toutes les feuille de calcul du classeur. Les onglets graphiques ne sont pas pris
'en compte.
'ThisWorkbook correspond à l'objet classeur contenant la macro
For Each Ws In ThisWorkbook.Worksheets
    If Ws.Name = "Synthèse" Then 'il faut garder une feuille visible a adapter au nom de la feuille
    Else
     If Sheets(Ws.Name).Range("A1") = 0 Then 'cellule à adapter
     Sheets(Ws.Name).Visible = False
     Else
     Sheets(Ws.Name).Visible = True
   End If
   End If
Next Ws
End If
End Sub



se déclenche au double clic en A1 de la feuille Synthèse

ensuite enregistrer sous: classeur Excel prenant en charge les macros

Voilà c'est tout simple!

0
Barbadouste Messages postés 4 Date d'inscription jeudi 23 août 2018 Statut Membre Dernière intervention 23 août 2018
23 août 2018 à 14:57
Merci ça marche très bien !
Oui comme ça, ça parait simple :-)

Bonne journée
0
Barbadouste Messages postés 4 Date d'inscription jeudi 23 août 2018 Statut Membre Dernière intervention 23 août 2018
23 août 2018 à 15:26
Par contre je voudrais faire la même chose sur d'autre cellule de la feuille "Synthèse" (référencé à une autre cellules des autres feuilles) et dans ce cas une erreur "nom ambigu détecté : Worksheet-BeforeDoubleClick" apparaît.
Je ne peux pas mettre plusieurs boucles à la suite?

Merci
0
Barbadouste Messages postés 4 Date d'inscription jeudi 23 août 2018 Statut Membre Dernière intervention 23 août 2018
23 août 2018 à 15:40
C'est bon j'ai trouvé mon erreur.
Désolé pour le précèdent message.
0