Listview : Interndire un doublon

Résolu
Clad49
Messages postés
265
Date d'inscription
dimanche 3 août 2003
Statut
Membre
Dernière intervention
29 mars 2010
- 26 mai 2005 à 17:42
Clad49
Messages postés
265
Date d'inscription
dimanche 3 août 2003
Statut
Membre
Dernière intervention
29 mars 2010
- 27 mai 2005 à 16:26
Salut !
J'ai une listview qui contient 2 colones !
- Une Pseudo
- L'autre Description

Comment faire pour éviter de métre 2 foi le même pseudo et que si il existe déjà que l'on modifie juste la description

Merci

Clad
A voir également:

5 réponses

yohan49
Messages postés
380
Date d'inscription
samedi 22 janvier 2005
Statut
Membre
Dernière intervention
13 août 2011
7
26 mai 2005 à 21:48
Private Function Recherche(LV As ListView, S As String) As Boolean
Dim ControlDoublon as Object
For each ControlDoublon in LV.listitems
if lcase(controldoublon) = lcase(S) then
recherche = true
exit for
end if
next
end function

controle tous les items de la liste sans se soucier des majuscules en plus

Voila

:)
3
Clad49
Messages postés
265
Date d'inscription
dimanche 3 août 2003
Statut
Membre
Dernière intervention
29 mars 2010

26 mai 2005 à 17:46
Du genre :

If Text1 = List.ListItems '..... que métre aprés ? ' Then
Text12 = "oki trouvé"
Else
Text12 = "n'existe pas"
End If

Clad
0
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
26 mai 2005 à 20:30
si ta ListView est triée sur la bonne colonne, la recherche sera plus rapide, sinon il faudra tout balayer item par item.

La Fonction suivate suppose que la ListView est triée sur la première colonne.

en paramètre, le nom de la ListView et la chaîne de recherche.

réponse True si existe, False si n'existe pas.



Private Function Recherche(LV As ListView, s As String) As Boolean

Dim P As Long

Dim M As Long

Dim G As Long

P = 1

G = LV.ListItems.Count

While P < G

M = (P + G) \ 2

If LV.ListItems(M).Text < s Then P P + 1 Else G M

Wend

If LV.ListItems(P).Text s Then Recherche True

End Function


Daniel
0
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
26 mai 2005 à 22:34
à part le temps de recherche qui sera nettement plus Long !!!



en plus peux utiliser strcomp qui sera 30 fois plus rapide:



If strcomp (s, LV.ListItems(M).Text, s,vbTextCompare) = 1 Then ...


Daniel
0

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

Posez votre question
Clad49
Messages postés
265
Date d'inscription
dimanche 3 août 2003
Statut
Membre
Dernière intervention
29 mars 2010

27 mai 2005 à 16:26
Merci pour votre aide ! J'ai testé vos deux façon et celle de yohan49 fonctionne correctement par contre Gobillot la tiénne me dit que l'index et hors limites ! Sur " If LV.ListItems(P).Text = s Then "

Clad
0