Bonjour,
Et encore, une fois, il n'y a pas de code vba dans cette histoire, vous pouvez continuer à être NullEnVba
.
Dans le fichier clients.xlsx le nom est définit ainsi:
"=DECALER(Clients!$B$2;1;;MAX(1;NBVAL(Clients!$B$2:$B$100)-1))
Explications:
1 Décalage d'une ligne pour éviter l'entête (B2)
2 calcul de la hauteur de plage par Nbval
cette fonction pouvant retourner 0 s'il n'y a aucune valeur entre B2:B100
on emploie Max(1;nbval(…)-1) pour retourner au moins une ligne
Le -1 est employé pour corriger le nombre de valeurs (entête comprise) de la colonne
Avec Max la formule retournera ainsi toujours au moins une cellule (la première sous l'entête), même vide
On pourrait très bien faire
=Decaler( $B$3;;Max(1;NBVAL($B3:$B$100))
Mais la cellule renvoyée s'il n'y avait aucune valeur en b3:b100 serait B4 et non plus B3.
Dans le fichier ListeClients.xlsx redéfinition du nom ListeClients (avec client.xlsx ouvert) :
=DECALER([Clients.xlsx]Clients!$B$2;1;;MAX(1;NBVAL([Clients.xlsx]Clients!$B$2:$B$100)-1))
Bon dimanche