Somme des cellules dans une colonnes dans un datagridview

termitus19
Messages postés
88
Date d'inscription
mercredi 7 janvier 2015
Statut
Membre
Dernière intervention
23 juin 2021
- 7 juil. 2018 à 16:00
Whismeril
Messages postés
17804
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 septembre 2022
- 8 juil. 2018 à 19:33
Un grand Bonjour à vous ,
svp est ce que quelqu'un peut m'aider svp

j'aimerais faire la somme des éléments contenues dans des cellules correspondant à une colonnes et afficher le résultat dans un textbox.
merci de m'aider svp

4 réponses

Whismeril
Messages postés
17804
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 septembre 2022
616
7 juil. 2018 à 16:19
Bonjour

Ton datagridview est il bindé sur une source de données?

0
termitus19
Messages postés
88
Date d'inscription
mercredi 7 janvier 2015
Statut
Membre
Dernière intervention
23 juin 2021

7 juil. 2018 à 16:33
non j'ai utilisé j'ai utilisé: mndgv.Rows.add(elm1,elm2,elm3);
je veux faire la somme des cellules qui se trouve dans la colonne des elm3
0
Whismeril
Messages postés
17804
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 septembre 2022
616
7 juil. 2018 à 17:50
ET bien c'est dommage, ça aurait été plus simple de faire la somme de nombres...

Dans ton cas, du dois faire une boucle de toute les cellules de la colonne, extraire le texte écrit, le convertir en nombre et enfin l'additionner.
0
termitus19
Messages postés
88
Date d'inscription
mercredi 7 janvier 2015
Statut
Membre
Dernière intervention
23 juin 2021

7 juil. 2018 à 18:14
et si le datagridview à été binde à une source
j'aurais fait quoi svp
0
Whismeril
Messages postés
17804
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 septembre 2022
616
7 juil. 2018 à 18:17
Tu aurais juste ajouter les nombres qui vont bien
0
termitus19
Messages postés
88
Date d'inscription
mercredi 7 janvier 2015
Statut
Membre
Dernière intervention
23 juin 2021

7 juil. 2018 à 18:25
un exemple serait vraiment cool je suis un petit peu flou svp
si vous pouvez me donner un exemple svp
merci pour votre aide
0
Whismeril
Messages postés
17804
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 septembre 2022
616
7 juil. 2018 à 20:39
Soient les 2 classes suivantes
using System;
using System.Collections.Generic;
using System.Linq;

namespace test
{
    class ExempleTermitus
    {
        public List<LesDonnees> Donnees { get; set; }

        public int SommeElement3
        {
            get { return Donnees.Sum(x => x.Element3); }
        }

        public int SommeDeJanvier
        {
            get { return Donnees.Where(x => x.Element2.Month == 1).Sum(x => x.Element3); }
        }

        public int SommeDeS18DernierMois
        {
            get { return Donnees.Where(x => x.Element2 <= DateTime.Now && x.Element2 > DateTime.Now.Date.AddMonths(-18)).Sum(x => x.Element3); }
        }

        public int SommeTexte2
        {
            get { return Donnees.Where(x => x.Element1 == "Texte1" ).Sum(x => x.Element3); }
        }
    }

    class LesDonnees
    {
        public string Element1 { get; set; }

        public DateTime Element2 { get; set; }

        public int Element3 { get; set; }
    }
}


dans ton formulaire
            //Création de la source de données
            ExempleTermitus exemple = new ExempleTermitus();
            exemple.Donnees = new List<LesDonnees>
            {
                new LesDonnees{ Element1 = "Texte1", Element2 = new DateTime(2018,07,07), Element3 = 123},
                new LesDonnees{ Element1 = "Texte2", Element2 = new DateTime(2017,07,07), Element3 = 234},
                new LesDonnees{ Element1 = "Texte3", Element2 = new DateTime(2017,01,01), Element3 = 345},
                new LesDonnees{ Element1 = "Texte1", Element2 = new DateTime(2019,01,01), Element3 = 456},
                new LesDonnees{ Element1 = "Texte2", Element2 = new DateTime(2019,07,07), Element3 = 567},
                new LesDonnees{ Element1 = "Texte3", Element2 = new DateTime(2018,01,01), Element3 = 789},

            };


            //utilisation de la source de données
            dataGridView1.DataSource = exemple.Donnees;

            textBox1.Text = exemple.SommeElement3.ToString();
            textBox2.Text = exemple.SommeDeJanvier.ToString();
            textBox3.Text = exemple.SommeDeS18DernierMois.ToString();
            textBox4.Text = exemple.SommeTexte2.ToString();


Voilà un petit tuto sur le binding
https://codes-sources.commentcamarche.net/faq/1291-utilisation-du-binding-au-travers-de-l-objet-databindingsource

Et là un tuto moins petit sur la programmation objet en C#
https://codes-sources.commentcamarche.net/faq/11239-la-programmation-objet-appliquee-a-net-par-l-exemple-partie-1-sur-3

0
termitus19
Messages postés
88
Date d'inscription
mercredi 7 janvier 2015
Statut
Membre
Dernière intervention
23 juin 2021

7 juil. 2018 à 23:26
ça me va très bien
Merci beaucoup pour votre aide
0
Whismeril
Messages postés
17804
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 septembre 2022
616
8 juil. 2018 à 19:33
0