'Macro Faite par Pascal RICHARD Paritec le 30/05/2018
Option Explicit
Sub copie()
Dim aa, i&, a&, bb, d As Object, n&, cc, dd, t$
Set d = CreateObject("Scripting.Dictionary")
t = Timer
With Feuil1
aa = .Range("A2:C" & Rows.Count)
End With
For i = 1 To UBound(aa)
If aa(i, 1) <> "" And Not d.exists(aa(i, 1)) Then d.Add aa(i, 1), aa(i, 1)
Next i
bb = d.keys()
d.RemoveAll
For i = 1 To UBound(aa)
If aa(i, 2) <> "" And Not d.exists(aa(i, 2)) Then d.Add aa(i, 2), aa(i, 2)
Next i
cc = d.keys()
ReDim dd(1 To UBound(bb) + 2, 1 To UBound(cc) + 2)
For i = 0 To UBound(bb)
dd(i + 2, 1) = bb(i)
Next i
For i = 0 To UBound(cc)
dd(1, i + 2) = cc(i)
Next i
For i = 2 To UBound(dd)
For a = 2 To UBound(dd, 2)
For n = 1 To UBound(aa)
If dd(i, 1) = aa(n, 1) And dd(1, a) = aa(n, 2) Then
dd(i, a) = aa(n, 3): Exit For
End If
Next n
Next a
Next i
Feuil2.Cells.Clear
Feuil2.Range("A6").Resize(UBound(dd), UBound(dd, 2)) = dd
MsgBox "Traitement Terminé en " & Format(Timer - t, "0.00 secondes")
End Sub