Dim tablo As Variant
Dim derlign1 As Long, derlign2 As Long
Dim i As Long, t As Variant, laplage As Range, f As Range, j As Long
With Worksheets(1)
derlign1 = .Cells(.Rows.Count, 7).End(xlUp).Row
derlign2 = .Cells(.Rows.Count, 8).End(xlUp).Row
With .Range("H6:H" & derlign2)
tablo = .Value
.ClearContents
End With
For i = 6 To derlign1
t = Application.Match(.Cells(i, 7).Value, tablo, 0)
.Cells(i, 8).Value = IIf(IsError(t) = False, .Cells(i, 7).Value, "")
Next i
Set laplage = .Range("G6:G" & derlign1)
For j = LBound(tablo) To UBound(tablo)
Set f = laplage.Find(tablo(j, 1), LookIn:=xlValues, lookat:=xlWhole)
If f Is Nothing Then
.Range("G" & j + 5, "H" & j + 5).Insert Shift:=xlDown
.Cells(j + 5, 7).Value = ""
.Cells(j + 5, 8).Value = tablo(j, 1)
Else
Set f = Nothing
End If
Next j
Set laplage = Nothing
End With
Erase tablo