Private Sub WorkSheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$A$2" And Target.Value <> Year(Date) Then
Dim cb As OLEObject
Application.ScreenUpdating = False
r = MsgBox("Voulez vous lancer l'effacement ?", vbYesNo, "Effacement ?")
If r = 6 Then
For i = 1 To Sheets.Count - 2 '(14-2 égal 12)
ActiveSheet.Next.Activate
feuille = ActiveSheet.Name
With Sheets(feuille)
.Unprotect
.Range("J8:M14,J16:M22,J24:M30,J32:M38,J40:M45,P8:Q47").ClearContents
For Each cb In .OLEObjects
cb.Object.Value = False
Next cb
For j = 8 To 47
If .Cells(j, 3).Value = "" And .Cells(j, 2) <> "TOTAL" Then .Cells(j, 3).EntireRow.Hidden = True
Next
.Protect
End With
Next i
End If
Sheets("Intro").Activate
End If
End Sub