ElyxAI
validation

Comment Créer une liste déroulante avec recherche

Excel 365Excel 2019Excel 2016 (limited functionality without FILTER)

Apprenez à créer une liste déroulante dynamique avec fonction de recherche qui filtre les options au fur et à mesure de la saisie. Cette technique de validation avancée améliore l'efficacité de la saisie de données en permettant une sélection rapide parmi les grandes listes.

Pourquoi c'est important

Les listes déroulantes avec recherche économisent du temps et réduisent les erreurs de saisie en permettant une sélection plus rapide et précise.

Prérequis

  • Compréhension de la Validation des données (Données > Outils de données > Validation)
  • Familiarité avec les plages nommées et formules (FILTER, fonctions SI)
  • Connaissance de base des tableaux et structure de liste Excel

Instructions étape par étape

1

Préparez votre source de données

Créez une liste d'éléments dans une colonne (p. ex. A1:A50) qui alimentera votre liste déroulante. Assurez-vous que les données sont propres sans cellules vides entre les entrées.

2

Créez une colonne d'aide pour les résultats de recherche

Dans une colonne adjacente (p. ex. colonne C), utilisez une formule FILTER pour afficher les éléments correspondants: =FILTER(ListeSource, ISNUMBER(RECHERCHE(BoîteRecherche, ListeSource))).

3

Configurez la cellule d'entrée de recherche

Désignez une cellule (p. ex. D1) comme boîte de recherche où les utilisateurs saisiront pour filtrer les résultats. Formatez-la clairement avec couleur ou bordures.

4

Appliquez la Validation des données à la cellule déroulante

Sélectionnez la cellule où la liste déroulante apparaît (p. ex. E1), allez à Données > Outils de données > Validation, choisissez Liste, et référencez votre colonne d'aide filtrée (C:C).

5

Ajoutez des instructions et testez la fonctionnalité

Saisissez des termes de recherche d'exemple dans votre boîte d'entrée pour vérifier que la liste déroulante filtre correctement et se met à jour en temps réel.

Méthodes alternatives

Approche VBA/Macro

Créez un UserForm avec ListBox qui filtre en fonction de l'entrée TextBox utilisant le code VBA pour les utilisateurs avancés cherchant une personnalisation maximale.

Tableaux dynamiques Excel 365 avec fonction FILTER

Exploitez la fonction FILTER directement dans la Validation des données sans colonnes d'aide pour des feuilles de calcul plus épurées (nécessite un abonnement Excel 365).

Compléments tiers

Installez des compléments Excel comme SearchableDrop qui offrent une fonctionnalité de liste déroulante consultable pré-intégrée.

Astuces et conseils

  • Utilisez ISNUMBER(RECHERCHE()) pour un filtrage insensible à la casse qui trouve le texte n'importe où dans la cellule.
  • Gardez vos données source dans une feuille séparée et utilisez des références absolues ($A$1:$A$50) pour éviter les modifications accidentelles.
  • Ajoutez une formule COUNTA pour afficher le nombre de résultats à côté de la boîte de recherche.
  • Utilisez la mise en forme conditionnelle sur la cellule de recherche pour mettre en surbrillance quand les résultats sont trouvés.

Astuces avancées

  • Combinez les fonctions TRIM et LOWER dans la formule FILTER pour gérer les espaces et variations de casse incohérents.
  • Créez un bouton 'Effacer les résultats' avec macro =CLEAR() pour réinitialiser la boîte de recherche et la liste déroulante simultanément.
  • Utilisez la correspondance avec caractères génériques pour permettre les recherches partielles: =FILTER(List, ISNUMBER(RECHERCHE("*"&BoîteRecherche&"*", List))).
  • Implémentez la gestion des erreurs avec IFERROR pour afficher le message 'Aucune correspondance trouvée' quand la recherche ne retourne rien.

Résolution de problèmes

La liste déroulante affiche tous les éléments au lieu des résultats filtrés

Vérifiez que votre formule FILTER référence correctement la cellule de boîte de recherche et utilise la syntaxe ISNUMBER(RECHERCHE()). Vérifiez que la source de Validation des données pointe vers la colonne d'aide (C:C).

La boîte de recherche apparaît vide ou la formule affiche une erreur

Assurez-vous que la fonction FILTER est disponible (Excel 365+ requis) et que la colonne d'aide n'a pas de conflits de fusion. Essayez de reconstruire la formule à partir de zéro.

La sélection déroulante ne peuple pas correctement la cellule principale

Ajoutez une simple formule de référence (=E1) dans votre cellule cible pour assurer l'affichage de la valeur sélectionnée. Vérifiez qu'il n'existe pas de références circulaires.

Les performances ralentissent avec les grands ensembles de données (1000+ éléments)

Divisez les données en sous-catégories avec plusieurs listes consultables plus petites, ou utilisez l'approche macro VBA pour de meilleures performances.

Les caractères spéciaux ou espaces cassent la fonction de recherche

Enrobez les deux arguments RECHERCHE avec TRIM et appliquez SUBSTITUTE pour supprimer les caractères problématiques avant de construire votre formule FILTER.

Formules Excel associées

Questions fréquentes

Ai-je besoin d'Excel 365 pour créer une liste déroulante avec recherche?
Excel 365 avec la fonction FILTER est la méthode la plus facile, mais vous pouvez obtenir des résultats similaires dans Excel 2019/2016 en utilisant des colonnes d'aide avec les formules COUNTIF et SI.
Puis-je utiliser des listes déroulantes consultables avec plusieurs colonnes de données?
Oui, utilisez FILTER avec plusieurs critères ou CONCATENATE pour combiner les colonnes dans votre liste source. Pour un filtrage multi-colonnes avancé, les macros VBA offrent une meilleure fonctionnalité.
Que se passe-t-il quand je copie une cellule avec liste déroulante consultable vers un autre endroit?
Si vous avez utilisé correctement les références absolues ($A$1:$A$50), la liste déroulante fonctionnera de manière identique au nouvel emplacement. Attention aux références relatives.
Comment rendre la liste déroulante avec recherche sensible à la casse?
Remplacez la fonction RECHERCHE par EXACT dans votre formule FILTER pour une correspondance exacte et sensible à la casse.
Puis-je limiter les résultats déroulants pour afficher seulement les 10 premières correspondances?
Oui, enrobez votre formule FILTER avec INDEX et ROWS: =IFERROR(INDEX(FILTER(...), ROW(1:10)), "") pour afficher seulement les 10 premiers résultats correspondants.

C'etait une tache. ElyxAI en gere des centaines.

S'inscrire