VB6 Combobox Filtre + Proposition

cs_ssefyou Messages postés 119 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 18 juillet 2013 - 8 janv. 2010 à 20:21
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 11 janv. 2010 à 17:34
Salut,
je cherche de puis pas mal de temps un moyen de faire un filtre sur un combobox,
je m'explique supposant que j'ai un combobox remplie avec les valeurs : a1,a2,a3,b1,b2,b3...c3
ce que je veux faire c'est si je tape a il m'affiche les valeurs commençant
par a

j'arrive a faire la meme chose en vb.net en passant par les propriétés de la combobox AutoCompleteSource et AutoCompleteMode
mais en vb6 je trouve pas ces 2 propriétés

Merci

9 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 janv. 2010 à 13:51
salut,

normal, elles n'existent pas
soit tu les codes, soit tu regardes dans les sources existantes
(et logiquement il n'y en a qu'une, qu'il faudra adapter car c'est pour une textbox ^^)

nb : en jouant sur le style de ta combo tu peux autoriser la saisie mais uniquement sur la première lettre. pas première + deuxième ....
voir dropdownlist

++

[hr]
0
cs_ssefyou Messages postés 119 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 18 juillet 2013 1
10 janv. 2010 à 14:09
ok merci pour ton aide PCTP
en effet j'ai réussie a filtré le contenu de mon combo mais il me reste une chose et je sai pas est ce qu'il est possible de la réalisé ,

comment faire pour afficher la liste du contenu d'un combobox sans passer par le click sur ce dernier.

par exemple j'ai un combobox et un button
si je click sur mon button le combo affiche la liste de son contenu
est ce qu'il est possible de faire ça ???


Merci
0
cs_ssefyou Messages postés 119 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 18 juillet 2013 1
11 janv. 2010 à 14:52
salut,
après quelque essaye j'ai arrivé a filtré le contenu de la combo et j'ai trouvé comment ouvrir la liste déroulante de la combo mais ça reste imparfait

j'ai utilisé Sendkeys("%{Up}") pour ouvrir la list c'est l'équivalent de ALT + Flèche Haut.
mai le problème c'est qu'il selectionne automatiquement le premier élément et cela
vient de Sendkeys("%{Up}") =====>>
donc pas de filtre caractère par caractère




voila mon code

'un tableau qui va contenire la list original
Dim ContenuOriginal() As String



Private Sub Combo1_Change()
'fermer la liste deroulante
SendKeys ("{ESCAPE}")


If Combo1.Text <> "" Then
    FiltrerCombo Combo1, Combo1.Text
Else
    RetourEtatOriginal ContenuOriginal, Combo1
End If
'ouvrir la liste deroulante
SendKeys ("%{up}")

Me.Refresh

End Sub



Private Sub Form_Load()

'Remplissage de la combo
For i = 1 To 100
    If i <= 30 Then
        Combo1.AddItem ("a" & i)
    Else
        If i <= 60 Then
          Combo1.AddItem ("b" & i - 30)
        Else
          Combo1.AddItem ("c" & i - 60)
        End If
    End If

Next

 RemplireListOrigin ContenuOriginal, Combo1
 

End Sub

Sub RemplireListOrigin(ByRef List() As String, ByRef Combo As ComboBox)

    ReDim List(Combo.ListCount - 1)
    For i = 0 To Combo.ListCount - 1
        List(i) = Combo.List(i)
    Next
End Sub


Sub RetourEtatOriginal(ByRef List() As String, ByRef Combo As ComboBox)
    Combo.Clear
    For i = 0 To UBound(List)
        Combo.AddItem (List(i))
    Next
End Sub

'une sub pour supprimer filtré le contenu de la combo
Sub FiltrerCombo(ByRef Combo As ComboBox, ByVal Text As String)

If Combo.ListCount > 0 Then
    Dim i As Integer
    i = 0
       Do
        If Mid(Combo.List(i), 1, Len(Text)) <> Text Then
            Combo.RemoveItem (i)
            i = i - 1
        End If
        i = i + 1
    Loop Until Combo.ListCount = i
End If

End Sub



De l'aide SVP
Merci
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 janv. 2010 à 15:28
je viens de poster ceci à ton intention :
http://www.codyx.org/snippet_ouvrir-ou-fermer-liste-combobox_850.aspx#2549

à savoir néanmoins qu'avec 3 secondes de recherche....
http://support.microsoft.com/kb/459853/fr

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ssefyou Messages postés 119 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 18 juillet 2013 1
11 janv. 2010 à 16:01
salut,
merci pour les liens mon problème maintenant ne résident pas dans l'ouverture ou fermeture de la liste j'ai trouvé un truc plus simple ALT+Flech
haut ==>> Sendkeys("%{Up}")

pour simplifié mon probleme :
je tape "a" dans la combo
ma liste s'ouvre et il sélectionne le premier element de la liste qui commance par "a"
moi ce que je cherche c'est qu'il me selectionne rien
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 janv. 2010 à 16:06
sauf que ton code ne fonctionnera pas si ta form n'as pas le focus

bref, donc on en revient alors à mon premier post : çà n'existe pas en VB6 !

regarde en bas de cette page, dernier lien vers une source (la mienne d'ailleurs ^^) pour une textbox, te suffira d'adapter
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
11 janv. 2010 à 16:06
salut
met la propriété style de ton combo à dropdown list sa te sélectionnera rien au début


Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie
0
cs_ssefyou Messages postés 119 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 18 juillet 2013 1
11 janv. 2010 à 16:47
salut merci TCPT et toi aussi Claiyah

a Claiyah :

eeeeh pour le style je veux garder le style dropdowncombo je veux autorisé la saisie

a TCPT :
pour le deuxième lien http://support.microsoft.com/kb/459853/fr
il me donne une erreur d'overflow ???
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 janv. 2010 à 17:34
... t'as qu'à regarder le premier lien, Seiphyouh
0
Rejoignez-nous