Qu' est ce qui ne va pas ? ( Comparaison ListViews )

cs_Fripouil Messages postés 175 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 8 mai 2017 - 17 févr. 2012 à 13:00
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 19 févr. 2012 à 17:31
Bonjour,
voilà je bloque depuis quelques jours la dessus et ça commence à m' agacer...


Dim Test As Boolean
        Dim j As Integer
        Dim i As Integer

        For i = 0 To List_Fournisseur.Items.Count - 1
            Test = False
            For j = 0 To List_Client.Items.Count - 1
                If List_Fournisseur.Items(i).SubItems(0).Text List_Client.Items(j).SubItems(0).Text And List_Fournisseur.Items(i).SubItems(1).Text "0" Then
                    List_Produits.Items.Add(List_Fournisseur.Items(i).SubItems(0).Text)
                    Test = True
                    Exit For
                End If
            Next
            If Not Test Then
            End If
        Next


Le but est de comparer les données présentes dans List_Client ( 1 colonne : Référénce ) avec celles de List_Fournisseur, ( 3 Colonnes : Référence / Quantité / Etat ) si les "Références" sont identiques dans les 2 ListViews on vérifie l' information "Quantité" de List_Fournisseur si celle-ci = 0, on ajoute la "Référence" dans List_Produits.

Merci par avance de votre aide.
Fripouil

6 réponses

NHenry Messages postés 15098 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 février 2024 158
17 févr. 2012 à 23:55
Bonjour,

Quel est le résultat obtenu et qui ne te convient pas ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
cs_Fripouil Messages postés 175 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 8 mai 2017
18 févr. 2012 à 00:16
Bonsoir,

Voila maintenant quelques jours que je bûche sur ce probléme.
Je m' explique :

J' ai 3 listviews :
- List_Fournisseur à 3 colonnes ( Référence / Quantité / Disponibilité )
- List_Client à 2 colonnes ( Référence / Quantité )
- List_Produits à 3 Colonnes ( Référence / Quantité / Disponibilité )

Je charge tant bien que mal ( mais ça fonctionne ) les ListViews Fournisseur et Client avec des fichiers *.csv

Ensuite, je veux comparer les ListViews Fournisseur et Client de façon à afficher des réultats dans List_Produits mais pas n' importe comment :

Imaginons que dans List_Fournisseur, j' ai comme enregistrement :

Référence - Quantité - Disponibilité
AAAAAAAAA - 15 - Disponible
BBBBBBBBB - 0 - En Commande
CCCCCCCCC - 20 - Disponible
DDDDDDDDD - 0 - En Rupture
EEEEEEEEE - 25 - Disponible

et ensuite dans List_Client : ( il y a moins d' enregistrements dans cet ListView et c' est normal ça le sera dans la réalité )

Référence - Quantité
AAAAAAAAA - 15
BBBBBBBBB - 0
CCCCCCCCC - 20
DDDDDDDDD - 0

Maintenant lors de la Comparaison, je veux vérifier que les Items de List_Client sont encore disponible dans List_Fournisseur si ce n' est pas le cas alors, on ajoute dans List_Produits :

Référence - Quantité - Disponibilité
BBBBBBBBB - 0 - En Commande
DDDDDDDDD - 0 - En Rupture

Je bidouille depuis 3 jours plusieurs codes trouvés sur le net mais rien y fait. A l'heure actuelle, quand je clique sur mon bouton "Comparer", mon prog ne réagit plus...

Voila j' espére avoir était clair et merci si tu peux m' aider.......ou pas lol
0
NHenry Messages postés 15098 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 février 2024 158
19 févr. 2012 à 16:46
Bonjour,

Le code que tu as montré ne devrait pas bloquer indéfiniment le programme.
Sur combien d'éléments tu as fais le test ?
Le code montré semble cohérent par rapport au but désiré.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 213
19 févr. 2012 à 17:06
Bonjour,

Déjà et ce qui "saute aux yeux"
Tu ne cherches des correspondances que pour un même index (i) !
Et je ne crois pas que ce soit là ton but (rechercher dans toute une liste si présence d'un item de l'autre).

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 213
19 févr. 2012 à 17:23
Tu irais mille fois plus vite et plus sûrement en :
- utilisant un objet dictionnary (appelons-le toto)
- en alimentant cet objet toto par tes items de List_Fournisseur
puis, tout simplement,
Pour chaque item de List_Client :
- si n'existe pas : ne rien faire
- si existe dans toto : regarder dans toto sa valeur et si 0 ===>> ajouter à List_Produits


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 213
19 févr. 2012 à 17:31
Et tu ferais en plus une économie de deux listviews (et en plus : gain de vitesse dans la boucle)
si (car je sais -j'ai vu ton autre discussion- que tes deux listviews proviennent de fichiers CSV) tu alimentais d'emblée deux tableaus dynamiques depuis ces CSV, pour les traiter ensuite

Comment le faire ? tu trouveras ci-dessous une excellente réponse de PCPT

Tapez le texte de l'url ici.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous