Icône de la ressource
Les exemples de Listes Déroulantes Auto-Filtrées de type ComboBox sont multiples.
Le principe en est le suivant :
A chaque frappe d'un caractère dans la ComboBox, la liste de ses Items est actualisée (filtrée) à partir des éléments de la liste de référence à laquelle elle est associée, en accord avec le texte en cours de saisie.
La sélection d'une valeur est alors grandement facilitée, particulièrement si la liste de référence est longue.

Vous trouverez ici une solution avec :

pour particularité principale, un filtrage selon 3 modes possibles :
  • Commence par
    • La Liste contient tous les éléments de la Liste de référence qui commencent par les caractères saisis (ignore la casse).
    • La Liste est présentée dans l'ordre de la Liste de Référence
  • Contient
    • La Liste contient tous les éléments de la Liste de référence qui contiennent la chaine des caractères saisis (ignore la casse).
    • La Liste est présentée dans l'ordre de la Liste de Référence
  • Proche
    • La Liste contient tous les éléments de la Liste de référence qui se rapprochent de la chaine des caractères saisis (ignore la Casse, les caractères accentués, les caractères non alphanumériques)
    • La Liste est présentée par niveau de ressemblance décroissant. Ce mode est détaillé dans la feuille "Option PROCHE".
Le Mode de Filtrage le plus adapté pourra être sélectionné en fonction de la Liste de référence (éléments constitués d'un mot unique, tri de la liste, type de données ...), de la connaissance plus ou moins précise de l'élément recherché.
Le mode est géré par la constante MODE dans le code VBA.

Certaines Touches de Fonctions de navigation à l'intérieur de la ComboBox sont reprogrammées :
  • Début : 1er élément de la liste (En standard : curseur en début de texte de l'élément courant de la liste)
  • Fin : Dernier élément de la liste(En standard : curseur en fin de texte de l'élément courant de la liste)
  • Tab / Maj + Tab : Cellule de la Colonne Suivante / Précédente
Pour les suivantes, j'ai conservé l'action standard :
  • Flèche ▲ / ▼ : Élément Précédent / Suivant de la liste
  • Page Préc. / Page Suiv. : Remontée / Descente d'1 page dans la liste. une page = nombre max de lignes à afficher dans la liste ( propriété ListRows)

Les Éléments du Code VBA
Le module Module_Proche
contient tout le code associé au Mode Proche. Largement inspiré d'un code de Jacques Boisgontier.​
La feuille de saisie avec la ComboBox
avec dans sa partie Déclarations, le Mode de Filtrage, la table de référence associée à la ComboBox ... et les 4 événements suivant présentant un code spécifique à la Gestion de la ComboBox (Worksheet_Change, Worksheet_SelectionChange, ComboBox1_Change, ComboBox1_KeyDown).​
A copier et à adapter pour chaque feuille concernée par une saisie avec ComboBox.​
Contrainte Technique
'La référence "Microsoft Scripting Runtime" doit être activée (Dans l'éditeur VBA : Outils -> Référence) .
Un exemple de saisie en cours dans la ComboBox de la Feuille Liste Déroulante en Mode "Commence par"
1703324007592.png

Etat de la ComboBox pour une saisie en cours en fonction des différents Modes de Filtrage
(les caractères de filtrage sont ici surlignés en bleu pour la compréhension du Mode de Filtrage)

1703278429668.png
Auteur
crocrocro
Version
V1
  • 1703323350509.png
    1703323350509.png
    41.7 KB · Affichages: 48

Dernières mises à jour

  1. Liste Déroulante Auto-Filtrée Dynamique

    Les exemples de Listes Déroulantes Auto-Filtrées de type ComboBox sont multiples. Le principe en...

Derniers avis

merci pour ce partage