OVH Cloud OVH Cloud

ComboBox + masque

2 réponses
Avatar
Nicolas
Bonjour,

J'ai une ComboBox dans laquelle je voudrais faire un=20
masque de mani=E8re =E0 empecher l'utilisateur de saisir plus=20
de 4 caract=E8res. J'ai su le faire et je ne m'en souviens=20
plus.

Une bonne =E2me pourra t elle me secourir ?

Merci

Nicolas

2 réponses

Avatar
Nicolas
En fait je change mon problème : je cherche en fait à
limiter ma saisie aux éléments contenus dans la liste.

Je remplis ma liste grace à une table avec un recordset,
jusque là tout va bien.

Ensuite j'aimerais intercepter à chaque fois que
l'utilisateur tape une lettre de manière à l'empecher de
continuer la saisie dans la liste si l'élément saisi
n'existe pas.

Exemple :

voici une liste :

ami
amical
amitié

L'utilisateur va taper la lettre 'a'
puis la lettre "m"
puis la lettre 'i'
si ensuite il cherche à taper la lettre 'r' par exemple,
on doit lui empecher car aucun mot dans la liste ne
commence par 'amir'

J'espère ne pas être trop confus et merci d'avance !

Nicolas
Avatar
Ledev
Nicolas wrote:
En fait je change mon problème : je cherche en fait à
limiter ma saisie aux éléments contenus dans la liste.

Je remplis ma liste grace à une table avec un recordset,
jusque là tout va bien.

Ensuite j'aimerais intercepter à chaque fois que
l'utilisateur tape une lettre de manière à l'empecher de
continuer la saisie dans la liste si l'élément saisi
n'existe pas.

Exemple :

voici une liste :

ami
amical
amitié

L'utilisateur va taper la lettre 'a'
puis la lettre "m"
puis la lettre 'i'
si ensuite il cherche à taper la lettre 'r' par exemple,
on doit lui empecher car aucun mot dans la liste ne
commence par 'amir'



Voici un exemple qui chez moi marche a peu prêt convenablement:

Private Sub combo_Change()
Static Anc As String
For a = 0 To c.ListCount - 1
If UCase(Mid(combo.List(a), 1, Len(c.Text))) = UCase(combo.Text)
Then
Anc = combo.Text
Exit Sub
End If
Next a

combo.Text = Anc
combo.SelStart = Len(combo.Text)
End Sub

Bon se bout de code doit être améliorer pour que sa ne donne pas
l'impression a l'utilisateur que tous marche de travers, mais c'est déjà un
début.

a+