Bouton qui filtre ligne ayant que des zeros

  • Initiateur de la discussion Initiateur de la discussion bast0504
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bast0504

XLDnaute Occasionnel
Bonjour,

Quel code VBA simple je pourrais avoir pour un bouton qui filtrerait les lignes ayant que des 0, serait il possible de plus d'avoir un effet sur le bouton, un effet pressé.

Merci
 

Pièces jointes

Re : Bouton qui filtre ligne ayant que des zeros

Bonsoir.

VBA, je ne sais pas, mais avec une colonne sup avec le total par ligne ?
(Pourquoi faire compliqué ?)
La flèche du bouton du filtre automatique devient bleue s'il est activé.
 
Dernière édition:
Re : Bouton qui filtre ligne ayant que des zeros

Bonsoir bast0504, salut Patrick, lelectricien,

Il y a plusieurs feuilles, et les plages à traiter ne sont pas au même endroit.

Donc perso je préfèrerais des combinaisons de touches pour lancer ces 2 macros :

Code:
Sub Masquer()
'se lance par Ctrl+M
Dim cel As Range, masque As Range
On Error Resume Next
For Each cel In ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants, 1)
If Application.Sum(cel.EntireRow) = 0 Then _
  Set masque = Union(cel, IIf(masque Is Nothing, cel, masque))
Next
masque.EntireRow.Hidden = True
End Sub

Sub Affiche()
'se lance par Ctrl+A
Rows.Hidden = False
End Sub
Fichier joint.

Nota : il ne faut pas de nombres en dehors des tableaux à traiter [Edit] si leur somme par ligne est nulle...

A+
 

Pièces jointes

Dernière édition:
Re : Bouton qui filtre ligne ayant que des zeros

Bonsoir bast0504,

Une autre possibilité avec un filtre avancée en J1:J2 ( n'affiche que les lignes égales à 0)

Pour afficher les lignes dont au moins une valeur n'est pas nulle, remplacer la formule en J2:
Code:
=NON(OU(C8<>0;D8<>0;E8<>0;F8<>0))
par la formule:
Code:
=OU(C8<>0;D8<>0;E8<>0;F8<>0)

Voir fichier
 

Pièces jointes

Dernière édition:
Re : Bouton qui filtre ligne ayant que des zeros

Bonsoir mapomme,

Le terme "Filtrer" est en effet ambigu.

On peut afficher les lignes de valeurs zéros ou les masquer.

Ma version (1) les masquait, alors pour les afficher :

Code:
Sub Masquer()
'se lance par Ctrl+M
Dim cel As Range, masque As Range
On Error Resume Next
For Each cel In ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants, 1)
If Application.Count(cel.EntireRow) <> Application.CountA(cel.EntireRow) _
  And Application.Sum(cel.EntireRow) <> 0 Then _
  Set masque = Union(cel, IIf(masque Is Nothing, cel, masque))
Next
masque.EntireRow.Hidden = True
End Sub

Sub Affiche()
'se lance par Ctrl+A
Rows.Hidden = False
End Sub
Version (2).

Nota : la ligne des années ne doit comporter que des nombres...

A+
 

Pièces jointes

Re : Bouton qui filtre ligne ayant que des zeros

Bonjour le fil, le forum,

Cette version (3) est bien plus rapide :

Code:
Sub Masquer()
'se lance par Ctrl+M
Dim r As Range, masque As Range
On Error Resume Next
Set r = Cells.SpecialCells(xlCellTypeConstants, 2).EntireRow
Set r = Intersect(r, Cells.SpecialCells(xlCellTypeConstants, 1).EntireRow)
For Each r In r.Rows
If Application.Sum(r) <> 0 Then _
  Set masque = Union(r, IIf(masque Is Nothing, r, masque))
Next
masque.EntireRow.Hidden = True
End Sub

Sub Affiche()
'se lance par Ctrl+A
Rows.Hidden = False
End Sub
A+
 

Pièces jointes

Re : Bouton qui filtre ligne ayant que des zeros

Re,

Cette version (4) utilise le double-clic pour masquer ou afficher.

La macro dans ThisWorkbook :

Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, _
  ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Application.Count(Cells) = Application.Subtotal(102, Cells) Then _
Masquer Else Affiche
End Sub
A+
 

Pièces jointes

Re : Bouton qui filtre ligne ayant que des zeros

bonjour le forum
hello job75,mapomme,lelectricien,victor21,bast0504

comment modifier le paramétrage version 4 pour ne selectionner qu'une colonne exemple : la colonne E

merci
urbanito1
 
Re : Bouton qui filtre ligne ayant que des zeros

bonjour, Victor21, lelectricien, job75,mapomme

Merci à tous pour vos contributions je vais toutes les essayer une par une

Mon objectif est en effet de masquer les lignes ayant que des zéros, car elles apportent aucune infos pour mon cas.

j'ai pensé à un autre point, comment rajouter une couleur lorsque le filtre est actif et une autre couleur quand le filtre est inactif ou à la limite afficher la mention "filtre activé" ou "filtre désactivé"

Merci
 
Re : Bouton qui filtre ligne ayant que des zeros

Bonsoir bast0504, job75, le forum,

La proposition avec filtre avancé avait déjà:
1) un texte différent sur le bouton suivant que le filtre est ou non activé.
2) une couleur différente de N° de ligne quand le filtre est activé.
La version 2 modifie la couleur du tableau lui-même quand le filtre est actif.
 

Pièces jointes

Dernière édition:
Re : Bouton qui filtre ligne ayant que des zeros

Bonsoir bast0504,

Une autre possibilité avec un filtre avancée en J1:J2 ( n'affiche que les lignes égales à 0)

Pour afficher les lignes dont au moins une valeur n'est pas nulle, remplacer la formule en J2:
Code:
=NON(OU(C8<>0;D8<>0;E8<>0;F8<>0))

par la formule:
Code:
=OU(C8<>0;D8<>0;E8<>0;F8<>0)

Voir fichier

Bonjour

Comment adapté le code dans la cas ou on a les mêmes tableaux dans plusieurs onglets ?

THANKS
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
505
Réponses
23
Affichages
672
Réponses
15
Affichages
635
W
Réponses
11
Affichages
428
Réponses
32
Affichages
1 K
Retour