Sub ChercheCode2()
Dim Tab1() As Variant 'déclaration tablo vba
Dim Tab2() As Variant
Offset = 6 'pour compenser le démarrage du tableau à la ligne 7
With Sheets("Feuil1") 'avec la feuille1
LastLine = .Range("C" & .Rows.Count).End(xlUp).Row 'dernière ligne NON vide de la colonne C
Tab1 = .Range("G7:G" & LastLine).Value 'on met la colonne G dans le tablo
End With
With Sheets("Feuil2") 'avec la feuille2
LastLine = .Range("E" & .Rows.Count).End(xlUp).Row 'dernière ligne NON vide de la colonne E
Tab2 = .Range("D9:E" & LastLine).Value 'on met les colonne D et E dans le tablo
End With
Set dico1 = CreateObject("Scripting.Dictionary") 'création d'un dictionaire
For i = LBound(Tab1, 1) To UBound(Tab1, 1) 'pour chaque ligne du tablo
clé = Split(Tab1(i, 1), " ")(1) 'on récupère la partie numérique pour en faire la clé
If Not dico1.exists(clé) Then 'si la clé n'existe pas
dico1.Add clé, i 'on ajoute la clé avec son indice
End If
Next i
For i = LBound(Tab2, 1) To UBound(Tab2, 1) 'pour chaque ligne
If dico1.exists(CStr(Tab2(i, 2))) Then 'si la clé existe
Tab2(i, 1) = dico1(CStr(Tab2(i, 2))) + Offset 'on met sa valeur (indice) + offset
End If
Next i
Sheets("Feuil2").Range("D9:E" & LastLine).Value = Tab2 'on copie le résultat dans la feuille
End Sub