Saisir dans une combo box

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 773 fois - Téléchargée 42 fois

Contenu du snippet

ce code permet de se rendre a la premiere ligne correspondante a une saisie dans une combo box.ce n'est pas facile a expliquer prenez le code est vous verez bien.
en tout cas c'est pratique.

Source / Exemple :


'a ecrire dans le module.
Public sub SetTextCombo(combo1 as comboBox)
    dim pos,x as long
    pos=len(combo1.text)
    for x =0 to combo1.listcount-1
       if ucase(left(combo1.list(x),pos))=ucase(combo1.text) then
           combo1.text=Combo1.list(x)
       exit for
     end if
    next x
    combo1.selstart=pos
    combo1.sellength=len(combo1.text)-pos
end sub
'dans le formulaire sur l'evenement key up de la combo box
private sub combo1_keyup(keycode as integer,shift as integer)
   if keycode<>8 then
      call setTextCombo (combo1)
    end if
end sub
'le combo1 dans la procedure sur key up doit etre remplacer par le nom de la combo box sur laquelle on travaille

Conclusion :


voila si il y a des bugs tenaient moi au courant pour une mise a jour.merci.
je tiens a remercier tout particulièrement ShanaBurns pour m'avoir apporter la première ébauche du code.

A voir également

Ajouter un commentaire

Commentaires

Bonjour,
J'ai une erreur sur combo1.text et pense que je l'aurai sur combo1.list
mais je suis largué.
Voici le message d'erreur.
"Méthode ou membre de données introuvable." (erreur462)
Quelqu'un a-t-il une idée ?
Merci d'avance et bonne semaine.
Christophe
cs_patrick
Messages postés
32
Date d'inscription
vendredi 19 mai 2000
Statut
Membre
Dernière intervention
21 juillet 2015
-
Petite remarque au débutant :

Dans <dim pos,x as long>, n'est pas déclaré en tant que long, mais en tant que variant ! (type par defaut dans vb)

il faut écrire soi <Dim pos&, x as long> soi <Dim pos as long, x as long> (le caractère & permet de spécifier "historiquement" le type)

A+ Patrick
cs_patrick
Messages postés
32
Date d'inscription
vendredi 19 mai 2000
Statut
Membre
Dernière intervention
21 juillet 2015
-
Salut,

Bonne astuce, et simple de surcrois... une seul remarque :

en remplacant < if ucase(left(combo1.list(x),pos))=ucase(combo1.text) then >
par < if StrComp(Left(combo1.List(x),pos), Combo1.Text, vbTextCompare) = 0 Then>

tu gères même les carcatères spéciaux...

A+ Patrick
erefdatacomputing
Messages postés
165
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
24 avril 2018
-
Ce sont ces "petits riens" qui manquent le plus dans VB6 !!!
Bravo !!
Si t'en a d'autres ... Merçi de partager !!!
zcrew
Messages postés
231
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
26 février 2010
-
Tout simple mais efficvace, merci

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.