Verification de ComboBox

Résolu
Aratal Messages postés 8 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 17 septembre 2004 - 15 sept. 2004 à 14:10
Aratal Messages postés 8 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 17 septembre 2004 - 15 sept. 2004 à 22:04
Bonjour a tous!!

voila mon probleme:
dans un formulaire j'ai 20 combobox appele cbx_equipe(1)....cbx_equipe(20)
je les remplis avec les donnes contenu dans la table T_equipes ( :big) c un prog pour le classement de foot !!)

bon le probleme est que je voudrais verifier que se qui existe dans la cbx_equipe(i) n'existe pas ailleurs. J'espere que c assez clair ^^
en gros qu'une equipe ne soit presente qu'une seule fois par journée.....effectivement si on a un match OM-Lens il ne faut pas qu'il y ait OM-Monaco ou Lens-Lille......sa parait logique :big)

7 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 sept. 2004 à 17:51
une API : c'et une fonction d'une des Dll de Windows....

ici, on utilise SendMessage, que l'on a declaré plus haut, pour que VB sache comment s'en servir.

pas besoin de 2 boucles, puisque Index renvoie le numéro du ComboBox utilisé.
Mon code permet d'empecher de saisir deux fois la même equipe.

le tiens serais plus pour vérifier les doublons a la validation du formulaire

le voici corrigé:

for i = 1 to 20
    for j = 1 to 20
        if i <> j then
            if cbx_equipe(i) = cbx_equipe(j) Then
                msgbox "Erreur" 
            end if
        end if
    next j
next i


Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
3
Aratal Messages postés 8 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 17 septembre 2004
15 sept. 2004 à 14:14
merci d'avance

PS ya pas de fonction EDIT pour les messages???
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 sept. 2004 à 14:45
Pas de fonction EDIT.

Nix te dirait que "les paroles partent, les ecrits restent".

pour ta vérif, il te sufft de faire ce genre de test :

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Private Const CB_SHOWDROPDOWN As Long = &H14F

Private Sub cbx_equipe_Click(Index As Integer)
    Dim i As Integer
    For i = 0 To cbx_equipe.Count - 1
        If i <> Index Then
            If cbx_equipe(i).ListIndex = cbx_equipe(Index).ListIndex Then
                cbx_equipe(Index).ListIndex = -1
                '# on ne peux pas fermer le Combo....
                SendMessage cbx_equipe(Index).hwnd, CB_SHOWDROPDOWN, 1, ByVal 0&
                Exit Sub
            End If
        End If
    Next i
End Sub


Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
0
Aratal Messages postés 8 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 17 septembre 2004
15 sept. 2004 à 15:41
WAOU merci de repondre si vite !! c'est super sympa !!

sauf que je n'ai rien compris du tout la......je suis un petit amateur en VB et la .....je crois que je suis completement depasse !!
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
15 sept. 2004 à 15:48
Y'a pas de soucis, je vais tachen d'eclaircir un peu :

le code est placé dans l'evenement cbx_equipe_Click qui se declenche qd tu cliques dans ton combo.
Index renvoies l'indice du combo considéré...

je fait une boucle sur tous les combo du groupe pour tester la valeur selectionnée.

il s'agit de la propriété ListIndex; qui est -1 si rien n'est selectionné, autrement, il s'agit de l'indice de l'element selectionné...

je fais une simple comparaison, et s'il s'avère que l'un d'eux contient le même listindex que le combo qu j'ai cliqué, je deselectionne mon element dans mon combo, et je quitte la boucle...

j'ai ajouté un petit truc : le fameux SendMessage.
en fait, cette API permet ici de faire apparaitre la liste : le combo ne se ferme pas si l'element choisi n'est pas valide.

bon, je sais pas si ce que j'ai marqué est en francais jusqu'au bout ;-) mais bon...

Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
0
Aratal Messages postés 8 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 17 septembre 2004
15 sept. 2004 à 17:00
oki merci

c'est bien en francais ne t'inquiete pas.... :)

mais je sais pas ce qu'est une API.....et va falloir que j'explique sa au prof et a mes collegue de Promo alors il vaudrait mieux que je comprenne tous !!

au debut j'ai fait plus ou moins comme toi avec des if...then...else et des boucles FOR mais il me faut 2 boucles et rien ne marche dans se ca !!

for i = 1 to 20
for j = 1 to 20
     if i = j then
          next j ===> la deja sa passe pas..
     else if cbx_equipe(i) = cbx_equipe(j)
          msgbox "Erreur" 
     else 
          next i
     end if


voila en gros (chuis au bureau la !! donc il doit manquer des lignes !) ce que j'ai fait la premiere fois.Comme sa marchait pas a la place du
for i = 1 to 20

j'ai mis une incrmentation manuelle (i = i +1) mais sa ne marche pas nonplus ....
0
Aratal Messages postés 8 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 17 septembre 2004
15 sept. 2004 à 22:04
Merci beaucoup !!!!

erf y a pas de fonction citer non plus ??

tu a dit:
le tiens serais plus pour vérifier les doublons a la validation du formulaire

*vive le copier/coller :)*

en fait il aurait fallu que j'emploie les bons mots des le debut !!

merci encore 8-)

++
0
Rejoignez-nous