VB6 COMBOBOX SORT

Philippe_judo Messages postés 19 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 6 mai 2015 - 16 avril 2009 à 21:29
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 18 avril 2009 à 01:19
Bonjour,

Comment peut-on trier un combobox sur vb6?

Merci.

Philippe

9 réponses

jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
16 avril 2009 à 22:58
Bonsoir,

En VB6, hein ?
En utilisant (sous VB6) sa propriété Sorted (en mode création), entre autres.
Il est assez rare d'avoiir à trier dynamiquement si l'on ne le voulait pas en mode création
0
Philippe_judo Messages postés 19 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 6 mai 2015
17 avril 2009 à 16:19
Mon problème est que j'ai 99 entrées, divisées en 4 groupes. Cependant, il est possible, via un checkbox, qu'il n'y ait que 40, 25, 19 & 14 entrées. Il est également possible de faire une combinaison avec les 4 groupes. Ce qui fait qu'au lancement de la form, je n'ai aucune idée du nombre d'entrées qu'il y aura dans le combobox. Je ne peux donc pas lui demander de la trier.

Philippe
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 avril 2009 à 16:24
d'où proviennent ces elements ?

mais comme te l'a indiqué jmf0, mets simplment sa propriété Sorted à True, ca triera tout seul...
0
Philippe_judo Messages postés 19 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 6 mai 2015
17 avril 2009 à 17:24
Voici un sub qui insère les éléments dans le combobox

Sub lstTechComplète()

If ChkGokyo.Value = True Then

    ReDim varTech(40)
    intNombreDeTechniques = 40
    bolCaseCochéeAvant = True

    i = 0
    'Go-kyo
    varTech(i) = "De-ashi-barai"
    i = i + 1
    varTech(i) = "Hiza-guruma"
    i = i + 1
    varTech(i) = "Sasae-tsurikomi-ashi"
    i = i + 1
    varTech(i) = "Uki-goshi"
    i = i + 1
    varTech(i) = "O-soto-gari"
    i = i + 1
    varTech(i) = "O-goshi"
    i = i + 1
    varTech(i) = "O-uchi-gari"
    i = i + 1
    varTech(i) = "Seoi-nage"
    i = i + 1
    'Deuxième kyo
    varTech(i) = "Ko-soto-gari"
    i = i + 1
    varTech(i) = "Ko-uchi-gari"
    i = i + 1
    varTech(i) = "Koshi-guruma"
    i = i + 1
    varTech(i) = "Tsurikomi-goshi"
    i = i + 1
    varTech(i) = "Okuri-ashi-barai"
    i = i + 1
    varTech(i) = "Tai-otoshi"
    i = i + 1
    varTech(i) = "Harai-goshi"
    i = i + 1
    varTech(i) = "Uchi-mata"
    i = i + 1
    'Troisième kyo
    varTech(i) = "Ko-soto-gake"
    i = i + 1
    varTech(i) = "Tsuri-goshi"
    i = i + 1
    varTech(i) = "Yoko-otoshi"
    i = i + 1
    varTech(i) = "Ashi-guruma"
    i = i + 1
    varTech(i) = "Hane-goshi"
    i = i + 1
    varTech(i) = "Harai-tsurikomi-ashi"
    i = i + 1
    varTech(i) = "Tomoe-nage"
    i = i + 1
    varTech(i) = "Kata-guruma"
    i = i + 1
    'Quatrième kyo
    varTech(i) = "Sumi-gaeshi"
    i = i + 1
    varTech(i) = "Tani-otoshi"
    i = i + 1
    varTech(i) = "Hane-makikomi"
    i = i + 1
    varTech(i) = "Sukui-nage"
    i = i + 1
    varTech(i) = "Utsuri-goshi"
    i = i + 1
    varTech(i) = "O-guruma"
    i = i + 1
    varTech(i) = "Soto-makikomi"
    i = i + 1
    varTech(i) = "Uki-otoshi"
    i = i + 1
    'Cinquième kyo
    varTech(i) = "O-soto-guruma"
    i = i + 1
    varTech(i) = "Uki-waza"
    i = i + 1
    varTech(i) = "Yoko-wakare"
    i = i + 1
    varTech(i) = "Yoko-guruma"
    i = i + 1
    varTech(i) = "Ushiro-goshi"
    i = i + 1
    varTech(i) = "Ura-nage"
    i = i + 1
    varTech(i) = "Sumi-otoshi"
    i = i + 1
    varTech(i) = "Yoko-gake"
End If

If ChkNewaza.Value = True Then
    If bolCaseCochéeAvant = True Then
        intNombreDeTechniques = intNombreDeTechniques + 19
        ReDim Preserve varTech(intNombreDeTechniques)
        i = i + 1
    Else
        ReDim varTech(19)
        intNombreDeTechniques = 19
    End If
    bolCaseCochéeAvant = True

    'Ne-waza
    varTech(i) = "Kesa-gatame"
    i = i + 1
    varTech(i) = "Kuzure-kesa-gatame"
    i = i + 1
    varTech(i) = "Kata-gatame"
    i = i + 1
    varTech(i) = "Yoko-shiho-gatame"
    i = i + 1
    varTech(i) = "Kami-shiho-gatame"
    i = i + 1
    varTech(i) = "Kuzure-kami-shiho-gatame"
    i = i + 1
    varTech(i) = "Tate-shiho-gatame"
    i = i + 1
   
    varTech(i) = "Kata-juji-jime"
    i = i + 1
    varTech(i) = "Nami-juji-jime"
    i = i + 1
    varTech(i) = "Gyaku-juji-jime"
    i = i + 1
    varTech(i) = "Hadaka-jime"
    i = i + 1
    varTech(i) = "Okuri-eri-jime"
    i = i + 1
    varTech(i) = "Kata-ha-jime"
    i = i + 1
   
    varTech(i) = "Ude-garami"
    i = i + 1
    varTech(i) = "Ude-hishigi-juji-gatame"
    i = i + 1
    varTech(i) = "Ude-hishigi-ude-gatame"
    i = i + 1
    varTech(i) = "Ude-hishigi-hiza-gatame"
    i = i + 1
    varTech(i) = "Ude-hishigi-waki-gatame"
    i = i + 1
    varTech(i) = "Ude-hishigi-hara-gatame"
End If

'Shinmeisho
If ChkShinmeisho.Value = True Then
    If bolCaseCochéeAvant = True Then
        intNombreDeTechniques = intNombreDeTechniques + 25
        ReDim Preserve varTech(intNombreDeTechniques)
        i = i + 1
    Else
        ReDim varTech(25)
        intNombreDeTechniques = 25
    End If
    bolCaseCochéeAvant = True

    'Te-waza
    varTech(i) = "Kubisu-geashi"
    i = i + 1
    varTech(i) = "Kuchiki-taoshi"
    i = i + 1
    varTech(i) = "Morote-gari"
    i = i + 1
    varTech(i) = "Obi-otoshi"
    i = i + 1
    varTech(i) = "Seoi-otoshi"
    i = i + 1
    varTech(i) = "Yama-arashi"
    i = i + 1
   
    'Ashi-waza
    varTech(i) = "Hane-goshi-geashi"
    i = i + 1
    varTech(i) = "Harai-goshi-geashi"
    i = i + 1
    varTech(i) = "Ko-uchi-geashi"
    i = i + 1
    varTech(i) = "O-soto-geashi"
    i = i + 1
    varTech(i) = "O-soto-makkikomi"
    i = i + 1
    varTech(i) = "O-uchi-geashi"
    i = i + 1
    varTech(i) = "Uchi-mata-sukashi"
    i = i + 1
    varTech(i) = "O-soto-otoshi"
    i = i + 1
    varTech(i) = "Tsubame-gaeshi"
    i = i + 1
    varTech(i) = "Uchi-makikomi"
    i = i + 1
    varTech(i) = "Uchi-mata-geashi"
    i = i + 1
   
    'Sutemi-waza
    varTech(i) = "Daki-wakare"
    i = i + 1
    varTech(i) = "Tawara-geashi"
    i = i + 1
    varTech(i) = "Uchi-makikomi"
    i = i + 1
    varTech(i) = "Kawazu-gake"
    i = i + 1
    varTech(i) = "Hikkikomi-geashi"
    i = i + 1
    varTech(i) = "Obi-tori-geashi"
    i = i + 1
    varTech(i) = "Kani-basami"
    i = i + 1
   
    'Koshi-waza
    varTech(i) = "Daki-age"
End If

If ChkShinmeisho.Value = True Then
    If bolCaseCochéeAvant = True Then
        intNombreDeTechniques = intNombreDeTechniques + 14
        ReDim Preserve varTech(intNombreDeTechniques)
        i = i + 1
    Else
        ReDim varTech(14)
        intNombreDeTechniques = 14
    End If
    bolCaseCochéeAvant = True

    'Shinmeisho ne-waza
    'Osae-waza
    varTech(i) = "Uki-gatame"
    i = i + 1
    varTech(i) = "Ura-gatame"
    i = i + 1
   
    'Shime-waza
    varTech(i) = "Sode-guruma-jime"
    i = i + 1
    varTech(i) = "Katate-jime"
    i = i + 1
    varTech(i) = "Ryote-jime"
    i = i + 1
    varTech(i) = "Koshi-jime"
    i = i + 1
    varTech(i) = "Tsukkomi-jime"
    i = i + 1
    varTech(i) = "Sankaku-jime"
    i = i + 1
    varTech(i) = "Do-jime"
    i = i + 1
   
    'Kansetsu-waza
    varTech(i) = "Ashi-garami"
    i = i + 1
    varTech(i) = "Ude-hishigi-hara-gatame"
    i = i + 1
    varTech(i) = "Ude-hishigi-ashi-gatame"
    i = i + 1
    varTech(i) = "Ude-hishigi-te-gatame"
    i = i + 1
    varTech(i) = "Ude-hishigi-sankaku-gatame"
End If

End Sub

En fonction de ce qui a été coché (gokyo, newaza, shinmeisho et/ou shinmeishoNewaza), cela change le nombre de donnée dans le combobox, ainsi que l'ordre dans lequel ils sont inscrit. Et ces valeur (gokyo, newaza, shinmeisho et/ou shinmeishoNewaza) peuvent changer alors que la form est déjà chargée. C'est pour cela que je ne peux pas le trier à la création de la form.

Philippe
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 avril 2009 à 20:42
suffit de trier varTech

ou est fait le lien avec la comboBox ?
0
Philippe_judo Messages postés 19 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 6 mai 2015
17 avril 2009 à 21:33
Sub RemplissageMenuDéroulantTechnique()

i = 0
Do Until i = intNombreDeTechniques
    cboListeTechniques.AddItem varTech(i)
    i = i + 1
Loop

End Sub

Philippe
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 avril 2009 à 22:21
ok...

tu as donc, comme on te le dit depuis le tout début qu'a mettre la propriété Sorted de ta ComboBox à True, pour qu'elle trie alphabétiquement tous les elements que tu insereras par la suite.
0
Philippe_judo Messages postés 19 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 6 mai 2015
17 avril 2009 à 22:39
C'est un peu con mais je ne trouve pas d'option "sort" dans le combobox sous vb6. La propriété pourrait-elle porté un autre nom?

Philippe
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 avril 2009 à 01:19
oui, c'est "Sorted"
un Boolean (mettre à True)
0
Rejoignez-nous