Option Explicit
Dim flag As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
Dim data1 As String, colonne1a As String
Dim cellule As Range
Dim dl1 As Long ' dernière ligne
Dim val1 As Currency, val2 As Currency
If flag = True Then Exit Sub
If Target.Count > 1 Then Exit Sub
With Sheets(Target.Worksheet.Name)
'colonne1a = "h"
'dl1 = .Range(colonne1a & "65536").End(xlUp).Row
If Not Intersect(Target, Range("c5:g31")) Is Nothing Then
flag = True
val1 = 0
val2 = 0
For Each cellule In .Range("c4:c31")
If cellule = "IDE" Then val1 = val1 + .Range("h" & cellule.Row)
If cellule = "ASC" Then val2 = val2 + .Range("h" & cellule.Row)
Next cellule
.Range("c34") = val1
.Range("c36") = val2
End If
If Not Intersect(Target, Range("d40:d68")) Is Nothing Then
flag = True
val1 = 0
val2 = 0
For Each cellule In .Range("c40:c68")
If cellule = "IDE" Then val1 = val1 + .Cells(cellule.Row, Target.Column)
If cellule = "ASC" Then val2 = val2 + .Cells(cellule.Row, Target.Column)
Next cellule
.Range("c71") = val1
.Range("c75") = val2
End If
flag = False
End With
End Sub