bonjour,
un proposition... tu devrais aussi jeter un oeil à powerquery
Option Explicit
Sub test()
Dim bdd As Worksheet, taf As Worksheet, i As Long, j As Long
Dim tabbdd, tabtaf
Set bdd = Worksheets("BDD")
Set taf = ThisWorkbook.Worksheets("Travail")
With bdd
.UsedRange.Sort key1:=.Range("A1"), order1:=xlAscending, Header:=xlYes
End With
With taf
.UsedRange.Sort key1:=.Range("A1"), order1:=xlAscending, Header:=xlYes
End With
tabbdd = bdd.UsedRange
tabtaf = taf.UsedRange
'fusion des 2 tableaux
i = 1
j = 1
Do
If tabbdd(i, 1) = tabtaf(j, 1) Then
tabbdd(i, 2) = tabtaf(j, 2)
tabbdd(i, 3) = tabtaf(j, 3)
i = i + 1
j = j + 1
ElseIf tabbdd(i, 1) < tabtaf(j, 1) Then
i = i + 1
Else
j = j + 1
End If
Loop Until tabbdd(i, 1) = "" Or tabtaf(j, 1) = ""
'copie du tableau dans feuille bdd
bdd.Range("A1").Resize(UBound(tabbdd, 1), UBound(tabbdd, 2)) = tabbdd
End Sub