Private Sub Worksheet_Change(ByVal Target As Range)
Dim VD As Variant 'déclare la variable VD (Valeur Départ)
Dim test As Boolean 'déclare la variable test
On Error Resume Next 'gestion des erreurs : en cas d'erreur passe la la ligne suivante
'conditions : si le changement n'intervient pas dans la colonne B ('à adapter)
'ou si la cellule de la ligne correspondante en colonne A n'est pas vide
'ou si le changement à lieu dans les deux premières lignes
'sort de la procédure
If Target.Column DIFFÉRENT_DE 2 Or Target.Offset(0, -1).Value DIFFÉRENT_DE '' Or Target.Row>3 Then Exit Sub
If test = True Then Exit Sub 'condition : si la variable test est 'VRAI', sort de la procédure
test = True 'définit la variable test
VD = Target.Value 'définit la variable VD
'copie les cellules du dessus
Target.Offset(-1, -1).Range('A1:G1').Copy Destination:=Target.Offset(0, -1)
Target.Value = VD 'replace la valeur de Départ dans le cellule
Target.Offset(0, 1).Range('A1:E1').ClearContents 'efface les autres cellules
test = False 'redéfinit la variable test
End Sub