Re kaz,
J'ai supposé que tu as un nombre indéterminé de structures identiques, dans une même feuille.
La nouvelle macro n'utilise plus les noms de plages de cellules.
Pour la paramétrer, il faut que tu indiques, dans les tableaux Array de la macro, les coordonnées de chaque cellule "Janvier" de l'année en cours.
Par exemple, si tu as 3 structures dans ta feuille, donc 3 lignes "Année 2005", dont les cellules "Janvier" se trouvent en : A2, C13, F21, tu dois écrire :
Lignes = Array(2, 13, 21)
Colonnes = Array(1, 3, 6)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim I As Integer
Dim Lig As Integer
Dim Col As Integer
Dim Der As Integer
Dim Tot As Double
Dim Lignes As Variant
Dim Colonnes As Variant
Lignes = Array(3, 13) ' placer ici les n° des lignes année en cours
Colonnes = Array(2, 7) ' n° de colonnes de "janvier" année en cours
With Application.WorksheetFunction
For I = 0 To UBound(Lignes)
Lig = Lignes(I)
Col = Colonnes(I)
Der = .Min(Me.Cells(Lig, Col).Offset(0, -1).End(xlToRight).Column, Col + 11)
Tot = .Sum(Range(Cells(Lig - 1, Col), (Cells(Lig - 1, Der))))
Me.Cells(Lig, Col).Offset(0, 13).Value = Tot
Next I
End With
End Sub