Permet d'obtenir une aide à la saisie dans n'importe quelle ComboBox de vos projets.
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 !
Source / Exemple :
'==========================================================
'
'==========================================================
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
Conclusion :
Maj sur
http://fred.just.free.fr/francais/exemples/comboboxsearch.html
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.