Saisie semi automatique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 740 fois - Téléchargée 41 fois

Contenu du snippet

voila un exemple de code permettant de faire de la saisie semi automatique
ce code fonctionne avec un combobox avec des valeurs saisies
enjoy!

Source / Exemple :


Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer)
   'Saisie semie-automatique
   If KeyCode = vbKeyBack Then Exit Sub
   Dim inc1 As Integer
   Wcount = Len(Combo1.Text)
   If Combo1.Text = "" Then Exit Sub
   For inc1 = 0 To Combo1.ListCount - 1
      If LCase(Combo1.Text) = LCase(Left(Combo1.List(inc1), Wcount)) Then
         Combo1.Text = Combo1.Text & Mid(Combo1.List(inc1), Combo1.SelStart + 1)
         Combo1.SelStart = Wcount
         Combo1.SelLength = Len(Combo1.Text)
         Exit For
      End If
   Next inc1
End Sub

A voir également

Ajouter un commentaire

Commentaires

Messages postés
10
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
27 septembre 2009

Pour ma part, ca bug sur wcount... que puis-je faire ?
Messages postés
10
Date d'inscription
mercredi 13 février 2002
Statut
Membre
Dernière intervention
18 janvier 2009

Ca m'a bien dépanné mais il doit exister des controles qui le font directement , non?
En tous cas deux petites modifs sont necessaires :
celle citée ci dessus pour ne pas prendre en compte la touche shift et un petit test pour eviter que ça déconne quond on tape très vite (et que plusieurs occurence de la fonction sont lancées en même temps). Au final :

Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer)
'Saisie semie-automatique

If KeyCode = vbKeyShift Then Exit Sub
If KeyCode = vbKeyBack Then Exit Sub
If Combo1.Text = "" Then Exit Sub

Dim inc1 As Integer

Wcount = Len(Combo1.Text)
For inc1 = 0 To Combo1.ListCount - 1
If LCase(Combo1.Text) = LCase(Left(Combo1.List(inc1), Wcount)) Then
'Combo1.Text = Combo1.Text & Mid(Combo1.List(inc1), Combo1.SelStart + 1)
Combo1.Text = Combo1.List(inc1)
If Wcount <> Len(Combo1.Text) Then
Combo1.SelStart = Wcount
Combo1.SelLength = Len(Combo1.Text)
Exit For
End If
End If
Next inc1

End Sub
Messages postés
33
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
2 février 2014

en fait il faut ajouter
"If KeyCode = vbKeyShift Then Exit Sub"
apres
"If KeyCode = vbKeyBack Then Exit Sub"
Messages postés
33
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
2 février 2014

Salut, il y a un probleme quand tu "shift" les lettres, mais sinon c'est tres bien comme manip, merci
Messages postés
47
Date d'inscription
samedi 13 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2005

ça marche merci;

Tu merite bien plus que ça
Afficher les 7 commentaires

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.