Bonjour
2008 est la révision : ta version est bien 365 et c'est cela qu'il faut indiquer dans ton profil
En I1 tu as un titre donc on commence par I2 en K2
Soit tu utilises RECHERCHEV et il faut utiliser FormulaLocal soit tu utilises Formula et tu doit écrire la formule selon la norme US
Inutile de faire une boucle, on peut mettre la formule directement sur le range
Range("K2:K" & dl).FormulaR1C1 = "=VLOOKUP(RC[-2],'Proposition facturation'!R2C6:R299C12,7,0)"
Comme déjà dit en utilisant des tableaux structurés, qui existent dans Excel depuis 18 ans, on peut nettement simplifier : plus besoin de vieux codes comme
dl = Worksheets("export").Cells(Rows.Count, 1).End(xlUp).Row
Ceci, où NomTableau est à remplacer par le nom du tableau structuré de la feuille Proposition facturation, et avec la plage de la feuille Export également sous forme de tableau structuré avec la colonne K titrée MaRecherche suffit à remplir toute la colonne en 1 unique ligne de code
Worksheets("Export").ListObjects(1).ListColumns("MaRecherche").DataBodyRange.Formula = "=VLOOKUP([@[Ligne départ code]],NomTableau,7,0)"
Les tableaux, les colonnes peuvent être déplacés, le code continue à fonctionner...