1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Sub SOMME_PAR_INTERVALLE()
Dim l As Long, k As Long, ws As Worksheet, lf As Long
Dim sCell As String, k1 As Long, k2 As Long
Set ws = Worksheets("Feuil1") '<<<
lf = ws.Cells(Rows.Count, 2).End(xlUp).Row
For l = 1 To lf
sCell = UCase(ws.Cells(l, 2))
If InStr(sCell, "ETAGER") > 0 Or InStr(sCell, "NIVEAU") > 0 Or InStr(sCell, "RDUC") > 0 Then
k1 = ws.Cells(l, 2).Row + 1
For k = k1 To lf
If InStr(ws.Cells(k, 2), sCell) > 0 Then
k2 = ws.Cells(k, 2).Row - 1
ws.Range("F" & k).FormulaLocal = "=SOMME(F" & k1 & ":F" & k2 & ")/2"
Exit For
End If
Next k
l = k
End If
Next l
ws.Range("B" & l) = "TOTAL GENERAL"
ws.Range("F" & l).Formula = "=SUMIF(D4:D" & k & ","">0"",F4:F" & k & ")"
End Sub |
Partager