Bonjour Sissou, bonjour le forum,
Essaie comme ça :
Sub Macro1()
Dim B1 As Worksheet 'déclare la variable B1 (onglet Base achat 1)
Dim B2 As Worksheet 'déclare la variable B2 (onglet Base achat 2)
Dim TA As Worksheet 'déclare la variable TA (onglet total achat)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim R1 As Range 'déclare la variable R1 (Recherche 1)
Dim R2 As Range 'déclare la variable R2 (Recherche 2)
Set B1 = Worksheets("Base achat 1") 'définit l'onglet B1
Set B2 = Worksheets("Base achat 2") 'définit l'onglet B2
Set TA = Worksheets("total achat") 'définit l'onglet TA
DL = TA.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée de la colonne A de l'onglet TA
For I = 2 To DL 'boucle sur toutes les lignes de 2 à DL
'définit la recherche R1 (recherche la valeur exacte de la cellule de la boucle dans la colonne A de l'onglet B1)
Set R1 = B1.Columns(1).Find(TA.Cells(I, 1), , xlValues, xlWhole)
If Not R1 Is Nothing Then 'condition : si il existe au moins une occurrence
TA.Cells(I, 3).Value = R1.Offset(0, 2) 'renvoie dans la cellule ligne I colonne 3 de l'onglet TA la correspondance de la première occurrence trouvée
Else 'sinon (aucune occurrence trouvée)
'définit la recherche R2 (recherche la valeur exacte de la cellule de la boucle dans la colonne A de l'onglet B2)
Set R2 = B2.Columns(1).Find(TA.Cells(I, 1), , xlValues, xlWhole)
If Not R2 Is Nothing Then 'condition 2 : si il existe au moins une occurrence
TA.Cells(I, 3).Value = R2.Offset(0, 2) 'renvoie dans la cellule ligne I colonne 3 de l'onglet TA la correspondance de la première occurrence trouvée
End If 'fin de la condition 2
End If 'fin de la condition 1
Next I 'prochaine ligne de la boucle
End Sub