cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 2011
-
31 oct. 2002 à 10:57
pfemarouen
Messages postés1Date d'inscriptiondimanche 23 avril 2006StatutMembreDernière intervention29 août 2007
-
29 août 2007 à 01:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
pfemarouen
Messages postés1Date d'inscriptiondimanche 23 avril 2006StatutMembreDernière intervention29 août 2007 29 août 2007 à 01:24
la différence entre keyUp et Change dans cet exemple est l'entrée détectée par keyUp et pas par Change c'est tout
Merci pour vous deux pour le code
intéressant
cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 20112 31 oct. 2002 à 11:01
OUPS j'ai envoyé mon commentaire trop vite...
L'avantage de ta méthode, c'est que la procédure est utilisable par tout les combo de l'application sans qu'il soit nécessaire de taper tout ce que j'ai tapé dans ma procédure.
Mais pourquoi appeler la procédure sur le KeyUp du Combo plutôt que le Change ?
9/10
cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 20112 31 oct. 2002 à 10:57
Personnellement je procède autrement:
Private Sub MonCombo_Change()
Dim t As String
Dim i As Integer
'Je recueille le texte tapé
t = UCase(MonCombo.Text)
If t = "" Then Exit Sub
'Je passe en revue chacun des items de ma liste déroulante
For i = 0 To MonCombo.ListCount - 1
'Si l'un des items commence par ma saisie...
If UCase(Left(MonCombo.List(i), Len(t))) = t Then
'...je considère cet item comme celui à afficher
MonCombo.Text = MonCombo.List(i)
'...je m'organise pour sélectionner ce que je n'ai pas encore saisie
MonCombo.SelStart = Len(t)
MonCombo.SelLength = Len(MonCombo.List(i)) - Len(t)
'...je quitte la procédure
Exit Sub
End If
Next
End Sub
29 août 2007 à 01:24
Merci pour vous deux pour le code
intéressant
31 oct. 2002 à 11:01
L'avantage de ta méthode, c'est que la procédure est utilisable par tout les combo de l'application sans qu'il soit nécessaire de taper tout ce que j'ai tapé dans ma procédure.
Mais pourquoi appeler la procédure sur le KeyUp du Combo plutôt que le Change ?
9/10
31 oct. 2002 à 10:57
Private Sub MonCombo_Change()
Dim t As String
Dim i As Integer
'Je recueille le texte tapé
t = UCase(MonCombo.Text)
If t = "" Then Exit Sub
'Je passe en revue chacun des items de ma liste déroulante
For i = 0 To MonCombo.ListCount - 1
'Si l'un des items commence par ma saisie...
If UCase(Left(MonCombo.List(i), Len(t))) = t Then
'...je considère cet item comme celui à afficher
MonCombo.Text = MonCombo.List(i)
'...je m'organise pour sélectionner ce que je n'ai pas encore saisie
MonCombo.SelStart = Len(t)
MonCombo.SelLength = Len(MonCombo.List(i)) - Len(t)
'...je quitte la procédure
Exit Sub
End If
Next
End Sub