Sub Sélection_afficher()
Dim c As Range
Application.ScreenUpdating = False
'afficher chaque ligne
Cells.EntireRow.Hidden = False
'afficher la colonne M, en supprimer les données
With Columns("M:M")
.EntireColumn.Hidden = False
.ClearContents
End With
'application d'une police de couleur noire pour la zone nommée "plage",
'donc de B2 à D6
[plage].Font.ColorIndex = 1
'pour chaque cellule comprise dans "plage"
For Each c In [plage]
'si la valeur de la cellule correspond à la valeur de G1, nous demandons
'que la couleur de police soit blanche
If c.Value <> [G1] Then c.Font.ColorIndex = 2
'Si G1 = Tout, "plage" reçoit une couleur de police noire
Next
' formule nb.si en colonne M
Range("m2:m" & Range("a65536").End(xlUp).Row).FormulaR1C1 = "=COUNTIF(RC[-11]:RC[-9],R1C7)"
'on masque chaque ligne où il apparaît 0 en colonne M
For Each c In Range("m2:m" & Range("a65536").End(xlUp).Row)
If c = 0 Then c.Rows.EntireRow.Hidden = True
Next
'si G1 = Tout, on lance la macro Tout_afficher
If [G1] = "Tout" Then Call Tout_afficher
'masquer colonne M
Columns("M:M").EntireColumn.Hidden = True
Application.ScreenUpdating = True
End Sub
'*****************************************************
Sub Tout_afficher()
'affichage de toutes les lignes
Cells.Select
Selection.EntireRow.Hidden = False
'restauration de la couleur (police) automatique
With Selection.Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
[G1].Select
End Sub