Private test As Boolean 'déclare la variable test
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ligne As Range 'déclare la variable ligne
Dim cop As Range 'déclare la variable cop
If test = True Then Exit Sub 'si test est vrai, sort de la procédure (evite de boucler sur la procédure)
'si le changement à lieu ailleurs que dans la plage DK49:DK52, sort de la procédure
If Application.Intersect(Target, Range("$DK$49:$DK$52")) Is Nothing Then Exit Sub
test = True 'définit la variable test
Set ligne = ActiveSheet.Columns(107).Find(Target) 'définit la cellule ligne
If ligne Is Nothing Then Exit Sub 'si aucune occurrence n é st trouvée dans la colonne DC, sort de la procédure
'définit la plage cop
Set cop = ActiveSheet.Range(ActiveSheet.Cells(ligne.Row, 107), ActiveSheet.Cells(ligne.Row, 113))
'copy la plage cop et la colle dans la cellule modifié (provoquant uen boucle de la procédure Change)
cop.Copy ActiveSheet.Range(Target.Address)
test = False 'redéfinit la variable test
End Sub