Structure utilisée pour la Création d'une liste déroulante semi-automatique pour rechercher dans Excel

  

Structure utilisée pour la Création d'une liste déroulante semi-automatique pour rechercher dans Excel




(aussi appelée liste déroulante avec saisie prédictive) est une excellente manière de gagner du temps et éviter les erreurs de saisie.

✅ Objectif :

Permettre à l'utilisateur de taper une partie du nom d’un client dans une cellule (ex: Facture!A12) et d’obtenir automatiquement une liste filtrée de clients correspondants.

Définition des plages nommées exemple liste école

Ajouter une liste de ce que vous voulez exemple liste école. 

Dans Feuille Recherche :

  • Colonne A : Liste complète des clients (Client_facture

    • je peux les apporter d'une autre feuille où il y a tout les client dans A2 j'écris  =Nom_Client_source
      • 🎯 Objectif :
      • Afficher automatiquement la liste complète des clients (par exemple dans la colonne A d'une feuille "Recherche"), à partir d’une plage de données située dans une autre feuille (par exemple "BaseClients" ou bie "Param CL & PRIX").
      • ✅ Étapes à suivre :
      • 1. Créer une plage nommée
      • Va sur la feuille où se trouvent tous les clients, par exemple "BaseClients".
      • Sélectionne la colonne (ou plage) contenant les noms des clients, par exemple B2:B100. le meilleur c'est qu'il soit sous forme d'un tableau 
                              
      • Va dans Formules > Gestionnaire de noms (ou Ctrl + F3) et crée un nom de plage :
      • Nom : Nom_Client_source
      • Fait référence à : =BaseClients!$B$2:$B$100 si c'est un tableau =Clients[Nom Facture]
      • ✅ Ce nom permet d'accéder à cette plage depuis n'importe quelle feuille.
  • Colonne B : Numéros de ligne : =SI(A2<>"";LIGNES($A$2:A2);"") → Sert de compteur

  • Colonne C (Facture_recherche) : Recherche par mot-clé =

    =SI(ESTNUM(CHERCHE(Facture!$A$12;A2));B2;"")

    Cela vérifie si le texte tapé dans Facture!A12 est contenu dans un nom client de la colonne A.

  • Colonne D : Liste triée des numéros trouvés =

    =SIERREUR(GRANDE.VALEUR(Facture_recherche;B2);"")

    Cela extrait les lignes valides (triées du plus grand au plus petit).

  • Colonne H : Liste finale des clients correspondants =

    =SIERREUR(SI(D2<>"";INDEX(Client_facture;EQUIV(D2;Facture_recherche;0));"");"")

C’est avec cette dernière que nous souhaitons créer notre liste déroulante. Notez que votre liste doit être triée par ordre alphabétique sans quoi votre liste ne fonctionnera pas correctement et que les noms peuvent être modifiés, mais n’oubliez pas de mettre vos propres noms dans les formules.

Premier élément de liste


                                                   figure 1                                                figure 2
                                                          
                                                               figure 3

Placez-vous à la première cellule de la colonne de votre liste, et dans la Zone Nom, remplacez exemple : H2 (voir figure 1) par D_ecole (voir figure 2) (comme première école) et appuyez sur Entrée. Cette action peut aussi être exécutée avec le Gestionnaire de noms (voir figure 3) de l’onglet Formules, mais c’est plus rapide de cette manière.

Toutes les éléments

Sélectionnez ensuite la colonne de votre liste entièrement, ce qui correspond à la colonne de la liste, en cliquant sur l’en-tête de colonne exemple H et nommez cette colonne c_ecole (comme liste de écoles).

 

🏷️ Plages nommées utilisées :

  • Client_facture → 'Recherche!$A$2:$A$1000

  • Facture_recherche → 'Recherche!$C$2:$C$1000

  • D_ecole → 'Recherche'!$H$2

  • c_ecole → 'Recherche!$H$2:$H$100

Formule nommée


figure 5
               figure 4

Nous avons maintenant besoin d’une formule nommée. Allez dans Définir un nom (voir figure 4) de l’onglet Formules. Choisissez comme nom rechercherche_ecole (comme formule école) et, dans Fait référence à, saisissez :  =DECALER(D_ecole;0;0;NBVAL(c_ecole);1)

La formule DECALER se décompose de cette manière :

DECALER(réf;lignes;colonnes;hauteur;largeur).
  • Réf correspond à la référence par rapport à laquelle le décalage doit être effectué ;
  • Lignes correspond au nombre de lignes vers le haut ou le bas dont la cellule supérieure gauche de la référence renvoyée doit être décalée ;
  • Colonnes correspond au nombre de colonnes vers la droite ou la gauche dont la cellule supérieure gauche de la référence renvoyée doit être décalée ;
  • Hauteur est la hauteur, en nombre de lignes, attendue pour le résultat. Cette hauteur est calculée automatiquement grâce à la formule NBVAL qui compte le nombre de cellules non vides ;
  • Largeur est la largeur, en nombre de colonnes, attendue pour le résultat.

🧩 Décomposition de la formule

Cette formule utilise la fonction DECALER pour définir une plage dynamique à partir d’un point de départ (D_ecole), avec une hauteur variable selon le nombre de valeurs présentes dans c_ecole.

1. D_ecole

C’est la cellule de départ (ou plage d’une seule colonne) à partir de laquelle le décalage commence. Par exemple, cela pourrait être une cellule comme A2.

2. 0;0

Cela signifie pas de décalage :

  • 0 ligne en dessous

  • 0 colonne à droite
    Donc on reste sur D_ecole.

3. NBVAL(c_ecole)

C’est le nombre de cellules non vides dans la plage nommée c_ecole.
→ Cela détermine la hauteur de la nouvelle plage générée.
Par exemple, si c_ecole contient 5 lignes remplies, la nouvelle plage fera 5 lignes de hauteur.

4. 1

C’est la largeur de la plage retournée (1 colonne).


🎯 Ce que fait concrètement cette formule

Elle renvoie une plage verticale commençant à D_ecole, s'étendant sur autant de lignes non vides qu’il y en a dans c_ecole, et sur 1 colonne.


À quoi ça sert ?

Cette formule est souvent utilisée pour créer une plage dynamique qu'on peut ensuite utiliser :

  • dans une liste déroulante (validation de données),

  • dans un tableau croisé dynamique,

  • ou pour alimenter des graphiques dynamiques.

 Création de la liste déroulante semi-automatique

Sélectionnez ensuite les cellules ou vous voulez créez une liste automatique et allez dans l’onglet Données > Validation des données 

✅ EXSEMPLE Liste déroulante dans Facture!A12 :

  • Tu vas dans Données > Validation des données

  • Autoriser : Liste dans l’onglet Options de la boîte de dialogue, et gardez cochées les cases Ignorer si vide et Liste déroulante dans la cellule.

  • dans Source : =DECALER(D_ecole;0;0;NBVAL(c_ecole);1)

    Cela permet à la liste de ne contenir que les noms correspondant à la recherche.



Pour terminer, dans l’onglet Alerte d’erreur, décochez la case Quand des données non valides sont tapées et cliquez sur Ok.

Désormais, vous pourrez vous placer sur votre liste déroulante, saisir une ou plusieurs lettres du début du nom de ce que vous recherchée et, en cliquant sur la flèche du menu déroulant, seules les éléments commençant par cette ou ces lettres apparaîtront ce qui restreindra votre choix


✨ Résultat :

Quand l'utilisateur commence à taper un nom dans Facture!A12, une liste dynamique s'affiche avec uniquement les noms contenant ce texte. Facile, propre et très utile pour les longues listes !

Commentaires

Posts les plus consultés de ce blog

🛠 Utilisation de CustomUIEditor pour Personnaliser le Ruban Excel

🗓️ Simulateur de Congés et Calendrier Collaboratif sous Google Sheets

Explication VBA : Facturation automatique Gestion client