dl = Cells(Application.Rows.Count, 3).End(xlUp).Row 'définit la dernière ligné éditée dl de la colonne 1 (=C)
Set pl = Range("C2:H" & dl) 'définit la plage pl de C à H
'si le double-clic a lieu ailleurs que dans la plage pl, sort de la procédure
If Application.Intersect(Target, pl) Is Nothing Then Exit Sub
Cancel = True 'évite le mode édition lié au double-clic
On Error Resume Next 'gestion des erreurs (si une erreur est provoquée, passe à la ligne suivante
nb = pls.Cells.Count 'définit le nombre de cellules de la plage pls (provoque une erreur si la plage pls n'est pas définie)
If Err <> 0 Then 'condition : si une erreur a été générée
Err = 0 'annule l'erreur
Set pls = Range("C1") 'définit la plage de départ pls (provisoire)
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
'définit la plage pls (si nb=1, la ligne de la cellule double-cliquée, sinon la plge pls + la ligne de la cellule double-cliquée)
Set pls = IIf(pls.Cells.Count = 1, Range(Cells(Target.Row, 1), Cells(Target.Row, 6)), _
Application.Union(pls, Range(Cells(Target.Row, 1), Cells(Target.Row, 6))))
pls.Select 'sélectionne la plage pls
End Sub