Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
If Target <> "Validé" Then Exit Sub ' Si ligne pas validé, on sort
Application.ScreenUpdating = False
L = Target.Row ' Ligne à traiter
If Cells(L, "B") = "" Then Exit Sub ' Si pas de date on sort
Année = Year(Cells(L, "C")) ' Extraction de l'année pour pointer bonne feuille
DL = 1 + Sheets(CStr(Année)).Cells(Cells.Rows.Count, "G").End(xlUp).Row ' Première ligne vide de la feuille concernée
For C = 2 To 9 ' Pour les colonnes B à I
Sheets(CStr(Année)).Cells(DL, C) = Cells(L, C) ' Recopie des valeurs
Next C
Fin:
Application.ScreenUpdating = True
End Sub