Sub copieLignes()
Set f = Sheets("Tableau_1")
TblE = f.Range("A2:O" & f.[A65000].End(xlUp).Row).Value
Set d = CreateObject("scripting.dictionary")
For i = 1 To UBound(TblE)
clé = TblE(i, 1) & "|" & TblE(i, 3) & "|" & TblE(i, 4) & "|" & TblE(i, 5)
d(clé) = i ' index
Next i
Set f = Sheets("Tableau_2")
TblS = f.Range("A2:D" & f.[A65000].End(xlUp).Row).Value
Dim TblS2(): ReDim TblS2(1 To UBound(TblS), 1 To 7)
Ncol = UBound(TblS, 2)
For i = 1 To UBound(TblS)
clé = TblS(i, 1) & "|" & TblS(i, 2) & "|" & TblS(i, 3) & "|" & TblS(i, 4)
If d.exists(clé) Then
n = n + 1
ligne = d(clé)
For k = 1 To 7: TblS2(i, k) = TblE(ligne, k + 8): Next k
End If
Next i
If n > 0 Then f.[E2].Resize(UBound(TblS2), UBound(TblS2, 2)) = TblS2
End Sub