Comment faire la somme de certains éléments d'un listview dans un textbox

Signaler
-
 Gisma -
Bonjour bonjour je suis revenue encore pour une autre aide

Voilà je possède un listview de 3 colonnes (1 colonne : nom des fruits, 2 colonne : quantité et 3 colonne : l'heure d'ajout).

Par exemple :
Orange 15 08h 10
Mangue 7 08h 15
Orange 23 08h 30
Mangue 55 09h 45

J'aimerais si possible faire la somme des quantités des fruits de même nom qui s'affichera dans un textbox à l'aide d'un bouton.
Merci d'avance pour aimable soutien

2 réponses

Messages postés
205
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
6 février 2021
7
Salut Gisma,

Toujours avec tes Listviews !!!

Amuse-toi bien...

Essai de comprendre ce code...
(création d'un listview1 dans une forme vierge)

Private Sub Form_Load()

Static a As Integer
Static Total1  As Integer
Static Total2

ListView1.ColumnHeaders.Add , , " Ref: ", ListView1.Width / 3
ListView1.ColumnHeaders.Add , , "Quantité", ListView1.Width / 3
ListView1.ColumnHeaders.Add , , "Prix", ListView1.Width / 3

For a = 1 To 10
' Colonne 1
ListView1.ListItems.Add a, "REC" & a, "Hello " & a
' Colonne 2
ListView1.ListItems.Item(a).SubItems(1) = a
' Colonne 3
ListView1.ListItems.Item(a).SubItems(2) = (6.55 * a) / 3
Next


ListView1.View = lvwReport ' Set View property to Report.

Total1 = 0 'colonne 2
Total2 = 0 'colonne 3

For Each itm In ListView1.ListItems

Total1 = Total1 + itm.ListSubItems(1).Text
Total2 = Total2 + itm.ListSubItems(2).Text
Next

' Création d'une ligne supplémentaire pour afficher le total par colonne.

ListView1.ListItems.Add ListView1.ListItems.Count + 1, "TOTAL", "Totaux:"
ListView1.ListItems.Item(ListView1.ListItems.Count).SubItems(1) = Total1
ListView1.ListItems.Item(ListView1.ListItems.Count).SubItems(2) = Total2
End Sub
Messages postés
231
Date d'inscription
lundi 22 avril 2013
Statut
Membre
Dernière intervention
26 janvier 2021
1
Pour effectuer une somme des produits d'une liste, créer une liste dynamique et agrandissable à vide avec la dénomination du produit et la quantité comme nom de champs.

Parcourir la liste initiale avec la liste de tous les produits indifférents,

Rechercher dans la liste vide si ce produit existe, s'il n'existe pas "créer" et ajouter ce produit avec sa quantité dans liste dite initialisée a vide qui ne l'est plus, si ce produit existe déjà alors "modifier" dans la liste à vide ce produit selon cette dénomination avec la nouvelle quantité à la quantité déjà présente de ce produit (faire une addition).

On obtient une liste de produits unique avec la somme des quantités de ce produit quelque soit le nombre de produit et de quantité mais on perd l'information date d'une certaine façon.

Problème connus si dans la liste initiale on a les entrés "orange" et "oranges".
Messages postés
205
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
6 février 2021
7
Salut,

Oui, désolé je n'ai donné qu'une partie de la réponse. (Un indice n'est pas une solution!)

Au point de vu programmation, il suffit d'incrémenter une catégorie d'élément par référence en faisant une comparaison des objets "Fruit 1"; "fruit 2" ... avec la lecture du listview par redondance de pertinence.
L'information sera stockée dans l'information ".Tag" de l'enregistrement.
Il suffira de lire les différents ".Tag" pour ajouter telle ou telle ligne.
Dans ce cas il est possible d'associer les produits dérivés en les associant à la référence générique.
Mais, perso, il est plus simple de créer une liste de références que l'on pourra choisir grâce à un combo-box ou une list-box, pour éviter les doublons typographiques (majuscules/pluriels...).
>
Messages postés
205
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
6 février 2021

Bonjour JeuDuTaquin
Bon, j'ai pris du temps pour comprendre, mais je ne pu arriver surtout que je suis un débutant ambitieux. Si déjà c'est une solution pour certains, je suis ravis. Mais ne t'inquiètes pas à travers ça j'ai eu une idée qui a résolu mon soucis

Merci encore