Listview: Recherche et selection....

Résolu
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006 - 17 nov. 2004 à 14:27
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 18 nov. 2004 à 12:18
Bonjour,

J'ai un listviewen mode rapport et je voudrais faire une recherche dans ce listview et sélectionner l'item correspondant à cette recherche...

Merci d'avance....

11 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 nov. 2004 à 17:13
Re,

Tiens Essaie ceci
public function FindList(lv as listview, TonParametre as string) as long
For i = 1 To lv.ListItems.Count
    If lv.ListItems(i) = TonParametre Then FindList= FindList+ 1
    For j = 1 To lv.ListItems(i).ListSubItems.Count        If lv.ListItems(i).ListSubItems(j) Text2 Then FindList FindList+ 1
    Next
Next
end function


ceci te cherche une chaine de caractere (tonparametre) dans toute les "cases" de ton listview (lv) et te retourne le nombre de fois trouve

si tu veux selectioner la ligne tu rajoute ce que je t avais dis avant au lieu d incrementer le nombre de fois et tu sors de la fonction directement.

ajoute can meme le lv.selecteditem.ensurevisible qui te permet dans le cas ou tu es bcp de ligne de t assurer que l element sera visible a l ecran
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 nov. 2004 à 16:21
Salut,

Ton parametre de recherche est il la valeur d une colonne precise ou peut il etre dans n importe quelle colonne?

Pour selectionner l item : listview1.selecteditem= listview1.listitems(X) (je crois)
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006
17 nov. 2004 à 16:48
Merci mais justement le problème vient du fait qu'il peut se trouver dans n'importe quelle colonne, donc en fait je voudrais pouvoir faire une recherche par rapport au nom et le selectionner ensuite, juste par le code et non par la souris...

Merci d'avance.
0
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006
17 nov. 2004 à 17:24
Merci pour ton code mais il ne manque rien par hasard ? et à quoi correspond Text2 ?
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 nov. 2004 à 17:28
Oups je me suis trompe (c est que j l ai mis en fonction au dernier moment) mais remplace text2 par TonParametre...

Qu est ce que tu crois qu il manquerait

la premiere boucle parcours les ligne et la deuxieme les colonnes.
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006
17 nov. 2004 à 17:32
ok, merci c'est ce que je pensais mais où puis-je mettre un msgbox pour dire si il a trouvé mon itme et une msgbox pour me dire qu'il ne l'a pas trouvé
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 nov. 2004 à 17:43
Re,

imaginons que tu garde la meme fonction a la fin de la fonction tu teste la valeur de FindList... si elle vaut 0 c est qu il l a pas trouve et sinon c est qu il a trouve qqch (et si tu as ajouter la selection de l item automatique l utilisateur le verra a l ecran)
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006
17 nov. 2004 à 18:17
Merci ça marche +/-, il le sélectionne en grisé et on en bleu comme quand on clique dessus avec la souris
pourtant, j'ai ajouté la ligne : listview1.selecteditem= listview1.listitems(X)
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 nov. 2004 à 18:33
Re,

il le selectionne en grise car ton listview n a pas le focus.
ajoute la ligne lv.setfocus apres le .selecteditem.

Bon desole mais c est tout pour aujourd hui (j ai fini le taf je m arrache ;) ) si probleme on voit demain.

@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006
18 nov. 2004 à 11:55
Merci bcp de ton aide, ça fonctionne parfaitement...
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
18 nov. 2004 à 12:18
Salut,

Pas de quoi... ;)
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
Rejoignez-nous