Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim ong As Worksheet 'déclare la variable ong (ONGlet)
Dim dest As Range 'déclare la variable dest (DESTination)
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
'boucle sur toutes les cellules éditées cel de la colonne F
For Each cel In .Range("F5:F" & .Range("F65536").End(xlUp).Row)
'si il y a une date en colonne M, définit l'onglet (ROUGE) et va à l'étiquette "suite"
If cel.Offset(0, 7).Value <> "" Then Set ong = Sheets("ROUGE"): GoTo suite
'si il y a une date en colonne L, définit l'onglet (JAUNE) et va à l'étiquette "suite"
If cel.Offset(0, 6).Value <> "" Then Set ong = Sheets("JAUNE"): GoTo suite
'si il y a une date en colonne I, définit l'onglet (VERT) et va à l'étiquette "suite"
If cel.Offset(0, 3).Value <> "" Then Set ong = Sheets("VERT")
suite: 'étiquette
'condition : si F5 est vide
If ong.Range("F5") = "" Then
'définit E5 comme cellule de destination
Set dest = ong.Range("F5").Offset(0, -1)
Else 'sinon
'définit la première cellule vide rencontrée an colonne E
Set dest = ong.Range("F65536").End(xlUp).Offset(1, -1)
End If 'fin de la condition
'copie et colle la ligne
Range(cel.Offset(0, -1), cel.Offset(0, 7)).Copy dest
Next cel 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub