1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| Option Explicit
Sub Filtre()
' Filtre Macro
Dim i As Integer
Dim c As Range
Dim TotalX As Double, MoyenneX As Double
Dim CompteurX As Long, DerLigX
Dim C1 As String, C2 As String
Dim MaPlageX As Range
i = 1
For i = 1 To 10
CompteurX = 0
TotalX = 0
'Je filtre sur mon intervalle
C1 = Replace(">=" & CStr(i - 0.05), ",", ".")
C2 = Replace("<=" & CStr(i + 0.05), ",", ".")
ActiveSheet.Range("G1", [G65000].End(xlUp)).AutoFilter Field:=1, Criteria1:=C1, _
Operator:=xlAnd, Criteria2:=C2
'Je sélectionne mes données triées
DerLigX = Range("I65536").End(xlUp).Row
Set MaPlageX = Range("I2:I" & DerLigX).SpecialCells(xlVisible)
'Je fais la moyenne
For Each c In MaPlageX
TotalX = TotalX + c.Value
CompteurX = CompteurX + 1
Next c
MoyenneX = (TotalX) / (CompteurX)
Cells(i, 13) = MoyenneX
Next i
End Sub |