J'ai un ensemble disjoint de 9 cellules : A1,B3,C5,D7,E11,F13,G17,H19,I23 . J'ai attribué un Nom à ces cellules : MyPicks
J'ai une formule simple pour choisir la valeur de l'une de ces cellules au hasard :
=SMALL(MyPicks,RANDBETWEEN(1,9))
la formule fonctionne :
Cependant, à chaque fois que je modifie le nombre de cellules dans le fichier Gamme nommée je dois revenir en arrière et changer le 9 dans la formule ! J'ai donc décidé de "réparer" la formule :
Premier essai :
=SMALL(MyPicks,RANDBETWEEN(1,COUNTA(MyPicks)))
Cela a semblé fonctionner. Cependant, COUNTA() ne compte que les cellules avec des valeurs ou des Nulls. Il ignore les cellules totalement vides. So...........
Deuxième essai :
=SMALL(MyPicks,RANDBETWEEN(1,COUNTA(MyPicks)+COUNTBLANK(MyPicks)))
Malheureusement, cela produit une erreur #VALUE ! car COUNTBLANK() ne fonctionne pas sur des plages disjointes. Donc............
Troisième essai :
J'ai créé un petit UDF en VBA :
Public Function nCount(r As Range) As Long
nCount = r.Count
End Function
L'utilisation de cet UDF a résolu le problème. J'ai alors découvert que mon client était macrophobe et la solution a été instantanément rejetée.
Est-il possible de compter le nombre total de cellules dans une Gamme nommée sans VBA ?