voici une macro qui te fait ça :
Dans Thisworkbook, tu places cette macro :
Private Sub Workbook_Open()
RenommeFeuilleDate
End Sub
et tu places celle-ci dans un module :
Sub RenommeFeuilleDate()
Dim LaDate As String, Ws As Worksheet
Dim WsAnnee As Worksheet, WsEnCours As Worksheet
LaDate = CStr(Year(Date))
With ThisWorkbook
For Each Ws In .Worksheets
If Ws.Name = LaDate Then
'on a changé d'année
ThisWorkbook.Worksheets("Encours").Name = _
CStr(Val(LaDate) - 1)
Ws.Name = "Encours"
Exit For
End If
Next Ws
End With
End Sub
On suppose que ta feuille 2004 existe déjà. Au changement d'année, ta feuille 2004 sera renommée automatiquement, et la feuille EnCours deviendra 2003. Et ainsi de suite en 2005, pour peu que la feuille 2005 existe déjà au nouveau changement d'année.