Bonjour Gil, bonjour le forum,
• Première erreur : tu cherches dans un tableau à une seule colonne et tu veux renvoyer la valeur de la colonne 2 de ce tableau
Reti = Application.WorksheetFunction.VLookup(ws.Cells(i, 1), ws_data.Range(ws_data.Cells(li_PME + 1, 1), ws_data.Cells(li_eurol - 1, 1)), 2, 0)
Correction :
Reti = Application.WorksheetFunction.VLookup(ws.Cells(i, 1), ws_data.Range(ws_data.Cells(li_PME + 1, 1), ws_data.Cells(li_eurol - 1, 2)), 2, 0)
• Second problème : li_eurol - 1 vaut invariablement 12 dans la boucle de remplissage PME.Quand i vaut 15 ça plante. Il faudrait sans doute revoir la définition de la variable li_eurol...