Icône de la ressource

VBA - Saisie Assistée (alias saisie intelligente) en ComboBox V1

La "Saisie Assistée" sur ComboBox parfois dénommée "saisie intelligente" consiste à actualiser dynamiquement les valeurs d'une ComboBox au fur et à mesure de la saisie des caractères tout en permettant la sélection d'une valeur dans la liste affichée.

La ComboBox peut appartenir à un UserForm ou être une ComboBox Active X sur une feuille

La mise en oeuvre est très simple:
  1. Insérer le Module_SaisieAssistéeComboBox du fichier joint dans le projet VBA

  2. Sur l'évènement _Enter() de la ComboBox d'un UserForm ou
    Sur l'évènement _GotFocus() de la ComboBox Active X:
    -> Appeler la fonction SaisieAssistéeComboBoxEnter() dont les arguments sont décrits dans le module

  3. Sur l'évènement _Change() de la ComboBox:
    -> Appeler la fonction SaisieAssistéeComboBoxChange()
Ces 2 fonctions retournent accessoirement l'index dans le tableau ou le Range original de la valeur affichée de la ComboBox ou -1 si cette valeur ne fait pas partie de la liste.

VB:
'--------------
'ComboBox Enter
'--------------
Private Sub ComboBoxTest_Enter()
    Call SaisieAssistéeComboBoxEnter(Me.ComboBoxTest, _
                                     ThisWorkbook.Worksheets("Liste Clients").ListObjects("TableauClients").DataBodyRange)
End Sub

'---------------
'ComboBox Change
'---------------
Private Sub ComboBoxTest_Change()
    Call SaisieAssistéeComboBoxChange
End Sub

Le fichier joint donne un exemple de mise en œuvre pour les 2 cas de ComboBox.

Démo.gif
Version
V1