Option Explicit
Sub test()
Dim a, i As Long, w, x, y As Long
a = Sheets(1).Range("a1").CurrentRegion.Value
With CreateObject("Scripting.Dictionary")
For i = 2 To UBound(a, 1)
ReDim w(1 To 3)
w(1) = a(i, 1): w(2) = a(i, 2)
.Item(a(i, 1)) = w
Next
a = Sheets(2).Range("a1").CurrentRegion.Value
For i = 2 To UBound(a, 1)
If .exists(a(i, 1)) Then
w = .Item(a(i, 1))
w(3) = a(i, 2)
Else
ReDim w(1 To 3)
w(1) = a(i, 1): w(3) = a(i, 2)
End If
.Item(a(i, 1)) = w
Next
x = .items: y = .Count
End With
Application.ScreenUpdating = False
On Error Resume Next
Application.DisplayAlerts = False
Sheets("Résultat").Delete
On Error GoTo 0
Sheets.Add(after:=Sheets(Sheets.Count)).Name = "Résultat"
With Sheets("Résultat").Cells(1)
.Resize(1, 3).Value = Array("Clients", "CA 2014", "CA 2015")
.Offset(1).Resize(y, 3).Value = _
Application.Transpose(Application.Transpose(x))
With .CurrentRegion
.Font.Name = "calibri"
.Font.Size = 10
.VerticalAlignment = xlCenter
.BorderAround Weight:=xlThin
.Borders(xlInsideVertical).Weight = xlThin
With .Rows(1)
.BorderAround Weight:=xlThin
.Interior.ColorIndex = 38
End With
.Columns.AutoFit
End With
End With
Application.ScreenUpdating = True
End Sub