Comparer 2 SubItems de 2 listview differents [Résolu]

sancho12345 131 Messages postés jeudi 21 mai 2009Date d'inscription 18 mars 2012 Dernière intervention - 28 janv. 2010 à 18:37 - Dernière réponse : sancho12345 131 Messages postés jeudi 21 mai 2009Date d'inscription 18 mars 2012 Dernière intervention
- 28 janv. 2010 à 22:04
Bonsoir à vous,

Pourriez-vous m?aider et m?expliquer comment faire pour comparer 2 SubItems de 2 listview differents.

Je m?explique :

J'ai 2 listview :
Le SubItems(1) du Listview6 a des nombres qui correspondent à des quantités

Le SubItems(3) du Listview2 a des nombres qui correspondent également à des quantités

J'aimerais pouvoir comparer ces 2 SubItems et si les nombres sont differents les envoyer vers un Listview7.

J'ai essayé avec ce code me cela ne fonctionne pas pourriez-vous m?aider.



[i]Dim bTrouvé As Boolean
Dim n As Long
Dim r As Long


For r = 1 To ListView6.ListItems.Count
bTrouvé = False
For n = 1 To ListView2.ListItems.Count
If ListView6.ListItems(r).SubItems(1) <> ListView2.ListItems(n).SubItems(3) Then
ListView7.ListItems.Add = ListView6.ListItems(r)

bTrouvé = True
Exit For
End If
Next
If Not bTrouvé Then


End If
Next/i

Merci d'avance.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 28 janv. 2010 à 19:11
3
Merci
Salut
Toujours ce même problème ...
La prochaine fois, colle ton code en utilisant la coloration syntaxique (3ème icone à partir de la droite) : cela conservera la mise en forme.

Je vois que depuis que je t'ai donné du code, tu n'as pas beaucoup refléchi ni analysé les lignes pour comprendre ce qu'elles font. Désolé, on ne refléchira pas à ta place.
Même ton explicatif est incomplet, c'est fort !
Comment veux-tu trouver de l'aide si tu ne sais pas expliquer ton problème ?
Tu as seulement oublié de dire que les Items des 2 ListView sont identiques (même nombre et même ordre ?) : C'est quand même important pour comprendre ce que tu cherches à faire, non ?

Dans le code que tu fournis ici, tu compares les SubItems 1 de chaque Item de la première ListView avec tous les SubItems 3 de chaque Item de l'autre ListView : ça n'a aucun sens !
Non, la structure que tu as mise en place (les 2 For-Next imbriqués) sont là pour rechercher l'Item (pas SubItem) de la ListView6 parmi ceux de la ListView2.
Une fois que tu seras sûr que ce sont bien les mêmes, alors seulement tu pourras comparer les SubItems entre eux.
      If ItemDeLV6 = ItemDeLV2 Then
         If SubItem(1) de ItemDeLV6 <> SubItem(3) de ItemDeLV2 Then
            ' L'action que tu veux faire :
            ListView7.ListItems.Add = ListView6.ListItems(r)
         End If
         ' Mémorise qu'on a trouvé le même Item (pas SubItem)
         bTrouvé = True
         ' On suppose qu'il n'y a qu'un Item concerné par référence
         Exit For  ' on sort de la dernière boucle
      End If


Le bTrouvé n'est là que pour savoir si, à la sortie du Next, tu as trouvé les mêmes Items et que tu as bien fait la comparaison des SubItems.
Que doit-il se passer si un Item de ListView6 n'existe pas dans ListView2 ?
--> Mets le dans le test If Not bTrouvé Then qui suit.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de cs_Jack
sancho12345 131 Messages postés jeudi 21 mai 2009Date d'inscription 18 mars 2012 Dernière intervention - 28 janv. 2010 à 22:04
0
Merci
Merci à toi pour tes explications.

Bonne soirée.
Commenter la réponse de sancho12345

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.