Private Sub Worksheet_Change(ByVal Target As Range)
Dim DEST As Range 'décalre la variable DEST (cellule de DESTination)
'si l'édition a lieu ailleurs que dans la plage F5:F8, sort de la procédure
If Application.Union(Range("F5:F8"), Target) Is Nothing Then Exit Sub
'définit la cellule de destination DEST
Set DEST = Sheets(Cells(Target.Row, 1).Value).Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)
Cells(Target.Row, 1).Copy DEST 'copie la cellule de la colonne A dans DEST
If Cells(Target.Row, 2).Value <> "" Then 'condition : si la cellule de la colonne B n'est pas vide
Cells(Target.Row, 2).Copy DEST.Offset(0, 1) 'copie la cellule de la colonne B dans DEST déclalée d'une colonne à droite
Else 'sinon
Cells(Target.Row, 3).Copy DEST.Offset(0, 1) 'copie la cellule de la colonne C dans DEST décalée d'une colonne à droite
End If 'fin de la condition
Cells(Target.Row, 4).Copy DEST.Offset(0, 2) 'copie la cellule de la colonne D dans DEST décalée de deux colonnes à droite
Cells(Target.Row, 6).Copy DEST.Offset(0, 3) 'copie la cellule de la colonne F dans DEST décalée de trois colonnes à droite
End Sub