Bonsoir,
si tu transformes cette plage en tableau, les formules s'y rapportant se mettront à jour toutes seules quand la taille du tableau changera.
Si tu veux éviter le tableau, cette matricielle te donnera la référence de la dernière ligne non vide (j'ai mis 1000 comme fin de sélection pour l'exemple) ;
=MAX(SI(ESTVIDE($B$1:$B$1000);0;LIGNE($B$1:$B$1000)))
Intégrée à ta formule, ça donne ;
=INDEX($B$50:INDIRECT("$B$"&MAX(SI(ESTVIDE($B$1:$B$1000);0;LIGNE($B$1:$B$1000))));ALEA.ENTRE.BORNES(1;NBVAL($B$50:INDIRECT("$B$"&MAX(SI(ESTVIDE($B$1:$B$1000);0;LIGNE($B$1:$B$1000)))))))
Donc si la dernière ligne remplie en B est la 61, ceci
$B$50:INDIRECT("$B$"&MAX(SI(ESTVIDE($B$1:$B$1000);0;LIGNE($B$1:$B$1000))))
correspondra à
$B$50:$B$61