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

Gisma - 24 janv. 2021 à 23:23
 Gisma - 7 févr. 2021 à 15:12
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

JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 7
Modifié le 25 janv. 2021 à 10:41
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
0
denisbertin Messages postés 245 Date d'inscription lundi 22 avril 2013 Statut Membre Dernière intervention 13 mai 2023 1
Modifié le 26 janv. 2021 à 21:36
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".
0
JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 7
28 janv. 2021 à 20:12
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...).
0
Gisma > JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023
7 févr. 2021 à 15:12
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
0
Rejoignez-nous