Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'au double-clic dans l'onglet
Dim dest As Range 'déclare la variable dest (cellule de DESTination)
If Application.Intersect(Target, Range("A16:B45")) Is Nothing Then Exit Sub 'si le double-clic a lieu ailleurs que dans la plage A16:B45, sort de la procédure
Cancel = True 'évite le mode édition lié au double-clic
With Sheets("Journal de vente") 'prend en compte l'onglet "Journal de vente"
'définit la cellule de destination dest (A3 si A3 est vide, sinon la première ligne vide de la colonne A)
Set dest = IIf(.Range("A3").Value = "", .Range("A3"), .Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0))
End With 'fin de la prise en compte de l'onglet "Journal de vente"
Range("A16:A45").Copy dest 'copy la plage A16:A45 et la colle dans dest
Range("B16:B45").Copy dest.Offset(0, 5) 'copy la plage B16:B45 et la colle dans dest décalé de 5 colonnes à droite
MsgBox "Données Copiées !" 'message (à supprimer selon ton cas)
End Sub