Bonjour,
Une autre proposition VBA.
Bon, maintenant 300.000ko = 300mo ?
Cdlt.
Public Sub SearchDataBetween2Tables()
Dim wsInput As Worksheet, wsOutput As Worksheet
Dim rngOutput As Range
Dim tblInput, tblOutput
Dim lastRow As Long, I As Long, J As Long
With ActiveWorkbook
Set wsInput = .Worksheets("base données")
Set wsOutput = .Worksheets("Resultat")
End With
With wsInput
lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
tblInput = .Cells(1).Resize(lastRow, 2)
End With
With wsOutput
lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rngOutput = .Cells(1).Offset(, 1).Resize(lastRow)
tblOutput = .Cells(1).Resize(lastRow, 2).Value
End With
For I = LBound(tblOutput) To UBound(tblOutput)
For J = LBound(tblInput) To UBound(tblInput)
If tblOutput(I, 1) = tblInput(J, 1) Then
tblOutput(I, 2) = tblInput(J, 2)
Exit For
End If
Next J
Next I
rngOutput.Value = Application.Index(tblOutput, , 2)
End Sub