Salut dudesson,
à tester
Sub Compléter()
Set d = CreateObject("Scripting.Dictionary")
nM = Worksheets("Mvts").Cells(Worksheets("Mvts").Rows.Count, 2).End(xlUp).Row
For i = 6 To nM
d(Worksheets("Mvts").Cells(i, 2).Value) = i
Next i
nD = Worksheets("Donnees").Cells(Worksheets("Donnees").Rows.Count, 1).End(xlUp).Row
For i = 6 To nD
If d.exists(Worksheets("Donnees").Cells(i, 1).Value) Then d.Remove (Worksheets("Donnees").Cells(i, 1).Value)
Next i
With Worksheets("Mvts")
For Each k In d.keys
lgn = d(k)
MsgBox lgn
If .Cells(lgn, 2) > 0 Then .Cells(lgn, 2).Copy _
Worksheets("Donnees").Range("A" & nD)
nD = nD + 1
Next k
End With
End Sub