Bonjour Hosni,
Le code incluant la RAZ
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim w(0 To 12) As Worksheet, i&, n&(0 To 12), m%
If Target.Row = 1 And Target.Column = 5 Then
For i = 0 To 12
Set w(i) = Worksheets(i + 1)
If i > 0 Then
w(i).Range(w(i).Cells(4, 1), w(i).Cells(Rows.Count, 9)).ClearContents
n(i) = 4
Else
n(i) = WorksheetFunction.Max(4, w(i).Cells(Rows.Count, 1).End(xlUp).Row + 1)
End If
Next i
For i = 4 To n(0)
m = Month(w(0).Cells(i, 3))
w(0).Rows(i).Copy Destination:=w(m).Cells(n(m), 1)
n(m) = n(m) + 1
Next i
End If
End Sub
Remarque : Si le code est aussi 'compact' c'est que vous avez eu la bonne idée de créer les feuilles dans l'ordre logique : dans l'explorateur vba on voit que la feuille source est la Feuil1, la janvier est la Feuil2, la février la Feuil3 etc. jusque décembre la Feuil13. Si pour une raison vous deviez supprimer des feuilles et les re-créer, maintenez ce nommage. Dans l'explorateur vba cliquer sur la feuille, appuyer sur F4 pour faire apparaitre la fenêtre propriété et changer au besoin la valeur de la propriété (Name) pour garder cette logique. Cordialement
Jules