[COLOR="DarkSlateGray"][B]Sub toto()
Dim oDat1, oDat2, sDat(), i&
Dim ocoll As New Collection, n&, d
[COLOR="SeaGreen"]'[/COLOR]
With Sheets("Avant")
oDat1 = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Value
oDat2 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp)).Value
End With
[COLOR="SeaGreen"]'[/COLOR]
ReDim sDat(1 To 2, 1 To 1)
sDat(1, 1) = oDat1(1, 1)
sDat(2, 1) = oDat2(1, 1)
On Error Resume Next
For i = 2 To WorksheetFunction.Max(UBound(oDat1, 1), UBound(oDat2, 1))
ocoll.Add oDat1(i, 1), CStr(oDat1(i, 1))
ocoll.Add oDat2(i, 1), CStr(oDat2(i, 1))
Next i
On Error GoTo 0
ReDim Preserve sDat(1 To 2, 1 To 1 + ocoll.Count)
For n = 1 To ocoll.Count
d = ocoll(n)
For i = 2 To UBound(oDat1, 1)
If oDat1(i, 1) = d Then sDat(1, 1 + n) = d: Exit For
Next i
For i = 2 To UBound(oDat2, 1)
If oDat2(i, 1) = d Then sDat(2, 1 + n) = d: Exit For
Next i
Next n
[COLOR="SeaGreen"]'[/COLOR]
With Sheets("Après")
.Columns("A:B").ClearContents
.Range("A1").Resize(UBound(sDat, 2), 2).Value = WorksheetFunction.Transpose(sDat)
.Activate [COLOR="SeaGreen"]'Facultatif.[/COLOR]
End With
[COLOR="SeaGreen"]'[/COLOR]
End Sub[/B][/COLOR]