Private test As Boolean 'déclare la variable test
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim li As Integer 'déclare la variable li (LIgne)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)
If test = True Then test = False: Exit Sub 'si la variable test est vrai, definit test comme faux, sort de la procédure
dl = Cells(Application.Rows.Count, 1).End(xlUp).Row 'de'finit la dernière ligne éditée dl de la colonne 1 (=A)
Set pl = Range("A5:A" & dl) 'définit la plage pl
If Application.Intersect(Target, pl) Is Nothing Then Exit Sub 'si le changement a lieu aillerus qu'en pl, sort de la procédure
Cancel = True 'évite le mode edition lié au double clic
If Target.Value = 1 Then Exit Sub 'si la cellule double-cliquée contient "1", sort de la procédure
li = Target.Row 'définit la ligne li
Set dest = Sheets("Feuil2").Cells(Application.Rows.Count, 2).End(xlUp).Offset(1, 0) 'définit la cellule de destination dest
dest.Value = Cells(li, 2).Value 'dest prend la valeur de la donnée 1
dest.Offset(0, 2).Value = Cells(li, 3).Value 'dest décalé de 2 colonne à droite prend la valeur de la donnée 2
dest.Offset(0, 4).Value = Cells(li, 5).Value 'dest décalé de 4 colonne à droite prend la valeur de la donnée 3
Target.Value = 1 'écrit "1" dans la cellule double-cliquée
End Sub