Saisie auto pour une combobox

cs_jeyjey1 Messages postés 46 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 8 février 2010 - 5 nov. 2008 à 14:41
cs_jeyjey1 Messages postés 46 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 8 février 2010 - 6 nov. 2008 à 07:55
Bonjour,


j'ai une combobox(avec une liste), je voudrais que lorsque que je saisis la premiere lettre il remplisse automatiquent la combo avec la 1ere valeur trouvée dans la liste déroulante (et ainsi de suite pour les lettres suivantes)


Y a t-il une propriété de la combobox à modifier (au plus simple) ou faut il faire un bout de code


merci

4 réponses

lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
5 nov. 2008 à 15:12
Bonjour,
alors au choix :
http://www.vbfrance.com/codes/COMPLETER-MOT-PENDANT-SAISIE-FONCTION-DONNEES-COMBOBOX_6533.aspx
 ou

Private
Sub
Combo1_Change
()
   
Dim
i
As
Integer, start
As
Integer
    start
=
Len
(Combo1
.
Text
)
   
For
i
=
0
To
Combo1
.
ListCount
-
1

       
If
Left
(Combo1
.
List
(i), start)
=
Combo1
.
Text
Then

            Combo1
.
Text
=
Combo1
.
List
(i)
       
End
If

   
Next

    Combo1
.
SelStart
=
start
    Combo1
.
SelLength
=
Len
(Combo1
.
Text
)
End
Sub


ou encore

avec api windows

Private Declare
Function
SendMessage Lib
"
user32
"
Alias
"
SendMessageA
"
_
        (
ByVal
hwnd
As
Long,
ByVal
wMsg
As
Long, _
       
ByVal
wParam
As
Long, lParam
As
Any)
As
Long

Private
Const
CB_ERR
As
Long
=
(
-
1
)
Private
Const
CB_SELECTSTRING
As
Long
=
&
H14D

Private
Sub
Combo1_Change
()
   
Dim
start
As
Integer
    start
=
Len
(Combo1
.
Text
)
   
If
SendMessage
(Combo1
.
hwnd
, CB_SELECTSTRING,
ByVal
Combo1
.
ListIndex
,
ByVal
Combo1
.
Text
)
<
>
CB_ERR
Then

        Combo1
.
SelStart
=
start
        Combo1
.
SelLength
=
Len
(Combo1
.
Text
)
   
End
If

End
Sub


J'espere que ca répond à ta question

S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras --
0
cs_jeyjey1 Messages postés 46 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 8 février 2010
5 nov. 2008 à 15:53
Merci de ton aide,  mais désolé mon problème est ailleurs, en fait j'ai un "Private Sub combobox_Change" et j'essais de trouver un moyen de pourvoir remplir une valeur dans ma combobox sans qu'il verifie a chaque lettre si elle est est connue dans la liste déroulante
moi j'aimerai que mon "change" s'effectue lorsque ma valeur est entrée entièrement et non lettre par lettre
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
5 nov. 2008 à 23:12
Désolé, mais je ne comprends pas ce que tu cherches à faire (?)
Si tu dois écrire tout le mot pour qu'il s'inscrive, à quoi ça sert ? Aussi bien le sélectionner directement, non ?

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
cs_jeyjey1 Messages postés 46 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 8 février 2010
6 nov. 2008 à 07:55
En plus clair voilà ce que je veux faire

Comment puis je faire une recherche dans la rowsource (colonne 1) d'une combobox à partir de sa valeur saisie par un utilisateur.

Private Sub ComboBox1_Exit()




If ComboBox1.Value = ComboBox1.RowSource Then
 textbox1.Value = Combobox1.column(2)
Else
 textbox1.Value = ""
End If


End Sub
0
Rejoignez-nous