bonjour guigui1976,
la fonction SOUS.TOTAL ne prend pas en compte les lignes masquées suite à un filtre élaboré. le sous-total ne porte que sur les données visibles résultant du filtre automatique.
soit tu utilise le filtre automatique(le nombre de critère est de 2 maximun)
Range("D22").AutoFilter Field:=1, Criteria1:="=" & Range("C3"), Operator:=xlOr, Criteria2:="=" & Range("C2")
soit tu ajoute une boucle à ta macro pour compter de nombre de ligne visible
1 2 3 4 5 6 7 8 9 10 11 12
| Sub AppliquerAdvanceFiltre()
Dim a As Integer, b As Integer
Range("d22:d6500").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("c1:d2"), Unique:=False
For Each c In Range("c22:c6500")
If Rows(c.Row).Hidden = False Then
a = a + 1
b = b + Range(c.Address)
End If
Next
Range("H1") = b / a
End Sub |
Partager