Private Sub Worksheet_Change(ByVal Target As Range)
'---MODIFICATION DU MOIS---
If Target.Address = [Mois].Address Then
Dim f As Worksheet, i%, v1&, j%, v2&
Application.ScreenUpdating = False
On Error Resume Next
'---création de la feuille du mois si elle n'existe pas---
If Target <> "" Then Set f = Sheets(Target.Text)
If Err Then Sheets.Add: ActiveSheet.Name = Target
'---classement des feuilles des mois---
1 For i = 1 To Sheets.Count - 1
v1 = 0
v1 = CLng(CDate("1 " & Split(Sheets(i).Name, " ")(0)))
For j = i + 1 To Sheets.Count
v2 = 0
v2 = CLng(CDate("1 " & Split(Sheets(j).Name, " ")(0)))
If v2 < v1 Then Sheets(i).Move After:=Sheets(j): GoTo 1
Next
Next
'---1er mois---
For i = 1 To Sheets.Count
v1 = 0
v1 = CLng(CDate("1 " & Split(Sheets(i).Name, " ")(0)))
If v1 Then Exit For
Next
'--- formule de [CA] : attention aux guillemets anglais---
[CA] = "=SUM('" & Sheets(i).Name & ":" & Target & "'!A" & [Année] - 2011 & ")"
'---activation de la présente feuille---
Me.Activate
'---MODIFICATION DE L'ANNEE---
ElseIf Target.Address = [Année].Address Then
[CA].Replace "!A*)", "!A" & [Année] - 2011 & ")", LookAt:=xlPart
End If
End Sub