Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C2]) Is Nothing Then Exit Sub
Dim F$, t As Boolean, F1$, F2$, v, i As Byte, mois$
F = Mid([C5].Formula, 2)
t = InStr(F, "'!")
F1 = Left(F, InStrRev(F, "]")) & [C2] & "'!R65536C256"
F2 = Left(F, InStrRev(F, "]")) & [C2] & "!IV65536"
If t Then v = ExecuteExcel4Macro(F1) Else v = Evaluate(F2)
If IsError(v) Then
F1 = Left(F, InStrRev(F, "]")) & "Janvier" & "'!R65536C256"
F2 = Left(F, InStrRev(F, "]")) & "Janvier" & "!IV65536"
If t Then v = ExecuteExcel4Macro(F1) Else v = Evaluate(F2)
If Not IsError(v) Then [C2] = "Janvier"
Exit Sub
End If
For i = 1 To 12
mois = Format("1/" & i, "mmmm")
If LCase(F) Like "*]" & mois & "*" Then Exit For
Next
Application.ScreenUpdating = False
[C5:K35].Replace "]" & mois, "]" & [C2], xlPart
End Sub