Re-,
pour ton premier souci, reviens sur ton fil initial, et explique ce qui ne convient pas, la solution pourra t'être donnée, notamment sous VBA, la fonction ALEA() étant calculée à chaque opération sous Excel
Pour cette question, tu fais :
Insertion/Nom/Définir
Noms dans le classeur, tu mets "base", par exemple, sans les ""
En bas, dans "Fait référence à :", tu mets cette formule, qui te permet d'avoir une plage dynamique :
=DECALER(Feuil1!$B$4;;;NBVAL(Feuil1!$B:$B)-1;2)
et dans ta formule en J5, tu mets :
=SI(ESTVIDE(H5);"";RECHERCHEV(G5;base;2;0))
Remarque le nom "base" dans la formule