Menu sources

Recherche incrémentable dans une ComboBox



Permet d'obtenir une aide à la saisie dans n'importe quelle ComboBox de vos projets.
Il suffit de taper quelques lettres pour que la suite correspondante apparaisse à la maniere d' EXCEL :



ce code est très facilement ajoutable à un projet existant, il suffit de rajouter le code suivant dans l'événement KeyUp d'une ComboBox et de changer une seule ligne de code !

( Sources convertis en 6 couleurs avec mon programme VB to HTML)


'=============================================================================== ' '=============================================================================== Private Sub CB_KeyUp(KeyCode As Integer, Shift As Integer) Static NoSelectText As String ' texte tapé par l'utilisateur Dim i As Long ' compteur de boucle Const RGBerror = 255 ' couleur du fond en cas d'erreur With CB '<== SEULE LIGNE A MODIFIER ' touche que l'on ne doit pas gérer dans cette procedure If KeyCode = vbKeyUp Then Exit Sub ' utilisé par VB If KeyCode = vbKeyDown Then Exit Sub ' utilisé par vb If KeyCode = vbKeyLeft Then Exit Sub ' pour se déplacer If KeyCode = vbKeyRight Then Exit Sub ' pour se déplacer ' action spéciale pour la touche BACK If KeyCode <> vbKeyBack Then NoSelectText = Mid(.Text, 1, Len(.Text) - .SelLength) Else If NoSelectText <> "" Then NoSelectText = Mid(NoSelectText, 1, Len(NoSelectText) - 1) End If End If ' recherche de la correspondance For i = 0 To .ListCount - 1 If UCase(NoSelectText) = UCase(Mid(.List(i), 1, Len(NoSelectText))) Then .ListIndex = i Exit For End If Next ' selection de la partie que l'on a rajouté automatiquement .SelStart = Len(NoSelectText) .SelLength = Len(.Text) ' partie optionnelle qui change la couleur de fond en cas d'erreur If .ListIndex = -1 Then .BackColor = RGBerror Else .BackColor = vbWindowBackground End If End With End Sub '=============================================================================== ' '=============================================================================== Private Sub Form_Load() With CB .AddItem "Frederic" .AddItem "Francois" .AddItem "Francis" .AddItem "Virginie" .AddItem "Valery" .AddItem "Viviane" End With End Sub