Matricielles

Menu déroulant avec saisie semi-automatique

Temps de lecture 3 minutes

Cet article va vous expliquer comment créer un menu déroulant avec saisie semi-automatique.

Utiliser les fonctions matricielles d'Excel 365

Pour réaliser un menu déroulant avec saisie semi-automatique, nous allons avoir besoin de la fonction FILTRE.

Cette fonction n'est accessible qu'avec les versions de Microsoft 365 ou Excel Online.

Utilisation de la fonction FILTRE
Utilisation de la fonction FILTRE

Pour illustrer comment créer un menu déroulant avec saisie semi-automatique, nous allons partir de ce document, intégrer dans un Tableau (nommé tbl_Clients). En travaillant avec un Tableau, ça simplifie l'écriture et la compréhension des références.

Tableau contenant des noms de clients

Etape 1 : Formule pour rechercher une partie du nom

L'astuce pour faire une saisie semi-automatique c'est d'utiliser la fonction CHERCHE. Mais ici, nous n'allons pas utiliser la référence d'une seule cellule mais de toute une colonne.

C'est maintenant possible car, grâce aux fonctions matricielles dynamiques, les fonction d'Excel peuvent interpréter toutes les cellules d'une colonne.

Quand la chaîne de caractères "te" est trouvée, la formule CHERCHE retourne la position où cette chaîne a été trouvée. Quand la chaîne de caractères n'est pas trouvée, la fonction retourne #VALEUR!

=CHERCHE(C2;tbl_Clients[Clients])

La fonction CHERCHE construite comme une fonction matricielle retourne plusieurs résultats

Etape 2 : Convertir en test VRAI / FAUX

Ce n'est pas tant de retourner la position où la chaîne de caractères a été trouvée qui est important mais de savoir que la fonction CHERCHE a trouvé un résultat ou pas.

Pour cela, nous allons utiliser la fonction ESTNUM pour transformer le résultat en test logique VRAI ou FAUX (très important dans Excel)

=ESTNUM(CHERCHE(C2;tbl_Clients[Clients]))

La fonction ESTNUM converti les résultats en VRAI FAUX

Etape 3 : Insérer le test dans la fonction FILTRE

Normalement, la fonction FILTRE attend en 2e paramètre un test logique sur une colonne, comme par exemple B2:B20="Oui".

Mais un test logique, retourne VRAI ou FAUX. Donc, si nous pouvons parfaitement substituer le second paramètre par une formule qui donne déjà VRAI ou FAUX (comme le test que nous venons de créer).

=FILTRE(tbl_Clients;ESTNUM(CHERCHE(C2;tbl_Clients[Clients])))

Ajouter la fonction FILTRE au test de la fonction ESTNUM

Etape 4 : Ajouter un paramètre en cas de recherche infructueuse

Nous devons aussi traiter le cas où la recherche n'aboutie pas. Pour cela, nous allons renseigner le 3e paramètre pour afficher un message spécifique quand le texte à trouver n'existe pas

=FILTRE(tbl_Clients;ESTNUM(CHERCHE(C2;tbl_Clients[Clients]));"Pas de résultat")

Valeur à retourner si la fonction FILTRE ne trouve rien

Etape 5 : Intégrer la formule dans un menu déroulant

Il ne reste plus qu'à créer un menu déroulant (Données > Validation de données)

Et d'y indiquer la référence étendue à la cellule contenant la formule matricielle.

=$E$2#

Utilisation dune référence étendue pour appliquer la formule matricielle dans le menu déroulant

Etape 6 : Décochez l'alerte de saisie

Pour terminer, il est impératif de décocher l'option de contrôle de saisie du menu déroulant dans l'onglet Alerte d'erreur.

Validation de données option alerte décochée

En effet, si la case est cochée, la formule n'a pas le temps de renvoyer le résultat et un message d'erreur sera toujours renvoyé.

Et c'est tout. Maintenant, votre menu déroulant vous affiche un résultat en fonction de la saisie effectuée dans la cellule.

Menu déroulant saisie semi automatique

Related posts

Fonction UNIQUE sur plusieurs colonnes

Frédéric LE GUEN

Liste de valeurs distinctes sans vide

Frédéric LE GUEN

Filtre dynamique dans Excel

Frédéric LE GUEN

Laissez un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Ce site utilise des cookies pour améliorer votre expérience et vos recherches. Nous pensons que vous êtes dʼaccord sur ce principe mais vous pouvez refuser cette option. Accepter Continuer

Privacy & Cookies Policy