Monsieur Excel
Pour tout savoir faire sur Excel !

31 mars 2019

Validation des données (a)

Il me semble utile de consacrer quelques articles à la validation des données. Je constate en effet souvent que les cadres dans les entreprises ne les utilisent pas à la hauteur de leur immense potentiel. Dans ce premier article, nous verrons comment créer une validation à partir d’une liste déroulante dynamique.

Nous avons en colonne E une liste de continents. Nous voulons que cette liste soit proposée en B2 dans une liste déroulante. Mais nous voulons aller plus loin : il faudrait que, si l’on ajoute ultérieurement un continent – par exemple l’Antarctique – ce nouveau continent soit aussitôt proposé dans la liste déroulante en B2.

Pour créer une liste dynamique, il faut d’abord créer un nom dynamique. Créons donc le nom dynamique Continents en lui attribuant la définition :
=$E$1:decaler($E$1;nbval($E:$E)-1;0)


Il ne reste alors plus qu’à sélectionner la cellule B2 et à lui attribuer, via la commande « Validation des données » de l’onglet Données, comme dans la copie d’écran, une validation par liste à partir du nom dynamique.

Déroulez B2, et vous avez le choix entre les cinq continents actuels. Ajoutez Antarctique en E6, redéroulez B2, et vous avez à présent le choix entre six continents !

Voilà ! Vous venez de créer un menu déroulant dynamique !

L’erreur de traduction sur nb() et nbval()

Quand est sortie la première version d’Excel avec nb() et nbval(), j’ai aussitôt informé Microsoft France qu’il y avait un problème grave : la personne qui avait traduit le nom de ces deux fonctions n’avait rien compris à leur rôle !

En effet, en toute logique, nbval() devrait compter, dans une sélection, le nombre de cellules contenant des valeurs, et nb() le nombre de cellules non vides (valeurs ou texte), à l’instar des fonctions originales count() et counta() (pour Count All). Manque de bol, le traducteur original a mélangé les deux fonctions, et c’est l’inverse qui se passe.

Quand j’ai informé Microsoft France du problème, ils m’ont répondu que, pour des raisons de « compatibilité ascendante », il n’était pas possible de corriger cette erreur. C’est pour cela que, depuis près de 30 ans, et ce jusqu’à la fin d'Excel, ces deux fonctions sont nommées de travers dans la version française d’Excel. Triste, n’est-ce pas ?

1 Commentaire(s):

  • Bonjour

    Pour éviter d'utiliser une formule, je définis la liste de valeur de la fonction de validation de données par référence à la zone de données d'un tableau (menu "mettre sous forme de tableau").
    J'obtiens ainsi une liste complètement dynamique...à condition que le tableau soit sur le même onglet.

    Dans le cas contraire, si la table est sur un autre onglet (ce qui est généralement le cas car je crée systématiquement un onglet pour les tables dans mes solutions-tableur), j'attribue un nom à la plage de données du tableau et j'utilise ce nom comme paramètre de la fonction validation.

    Avec l'avantage de pouvoir retrier la liste de validation quand je rajoute ou supprime des valeurs autorisées pour conserver un ordre alphabétique ou numérique...

    Je serais très intéressé de savoir si cette méthode apporte des inconvénients (vitesse, utilisation méémoire...).

    Pour les fonctions "nombre"...
    je me console en pensant que "nombre" (nb) ne compte que les nombres,
    et que pour "nombre de valeurs" (nbval), les mots ont autant de valeur que les nombres, même pour un tableur...

    Cordialement
    jhbf

    By Blogger jhbf, sur 4:45 PM  

Enregistrer un commentaire

<< Accueil