none
compter la somme des valeurs(le contenue de chaque cellule) qui existent dans ma datagrid RRS feed

  • Question

  • Bonsoir,

    Je voudrais savoir si il est possible d'afficher dans un textbox la somme d'une colonne d'une datagrid. Ce textBox doit se mettre à jour en a la réactualisation du datagrid.

     je ne veut pas compter le nombre de colonne de mon datagrid, mais faire la somme des valeurs contenues dans une colonne

    Merci d'avance de m'avoir aider :)

    lundi 19 avril 2010 22:06

Réponses

  • Bonjour,

    Ce n'est pas claire le type des donnés inserrés dans la deuxieme colonne de datagridView (i=1), pour estimer le text de message d'exception.

    Vous pouvez utiliser cet exemple, sachant que le resultat de l'adition sera en format single pour donner plus de précision au résultat de l'addition, sinon vous aurez juste la partie entiere.

    Le résultat de l'addition sera dans le text de la form, et vous pouvez le placer ou vous voulez.. 

      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.DataGridView1.Rows.Insert(0, New String() {"1.02", "2"})
        Me.DataGridView1.Rows.Insert(0, New String() {"1.1587", "2"})
        Me.DataGridView1.Rows.Insert(0, New String() {"1", "2"})
        Me.DataGridView1.Rows.Insert(0, New String() {"1", "2"})
        Dim i As Single
        Dim Col0_Sum, Col1_Sum As Single
        For i = 0 To Me.DataGridView1.RowCount - 1
          Col0_Sum += Convert.ToSingle(Me.DataGridView1.Rows(i).Cells(0).Value())
          'Col1_Sum += Convert.ToSingle(Me.DataGridView1.Rows(i).Cells(1).Value())
        Next
        Me.Text = String.Format("{0}", Col0_Sum)
        'Me.Text = String.Format("{0} {1}", Col0_Sum, Col1_Sum)
      End Sub
    • Marqué comme réponse marwa580 mardi 20 avril 2010 18:49
    mardi 20 avril 2010 18:18

Toutes les réponses

  • Bonjour,

     

    Vous pouvez parcourir toutes les lignes de DataGrid avec un for(…) :

     

    1.  Dim i As Integer

    2.  Dim sum As Integer = 0

    3.  Dim val As Integer

    4.  For i = 0 To Me.dataGridView1.RowCount - 1

    5.      Integer.TryParse(Me.dataGridView1.Rows(i).Cells(1).Value.ToString(), val)

    6.      sum += val

    7.  Next

     

    Ou vous pouvez faire une requête dans la table source de DataGrid (s’il y en a une) et récupérer la somme des valeurs :

     

     select SUM(Table_1.Col1) from TestDB.dbo.Table_1

     

    Cordialement,


    Alex


    Appel à contribution ! http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/bd974e0e-5519-4122-b8fc-3b998207c34f
    mardi 20 avril 2010 12:49
  • Salut,

    j'ai essayé ce code mais ça marche pas :( une exception est déclenchée

     

    Function Somme(ByVal ParamArray Valeurs() As Integer) As Integer
    
    
    
        Dim i As Integer
    
        Dim sum As Integer = 0
    
        Dim val As Integer
    
        For i = 0 To Me.DataGridView1.RowCount - 1
    
          Integer.TryParse(Me.DataGridView1.Rows(i).Cells(1).Value.ToString(), val) 'une exception est déclenché!!
    
          sum += val
    
        Next i
    
        Return sum
    
      End Function
    
      Private Sub Button57_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button57.Click
    
        Prix.Text = CStr(Somme())
    
      End Sub

    mardi 20 avril 2010 17:10
  • Bonjour,

    Ce n'est pas claire le type des donnés inserrés dans la deuxieme colonne de datagridView (i=1), pour estimer le text de message d'exception.

    Vous pouvez utiliser cet exemple, sachant que le resultat de l'adition sera en format single pour donner plus de précision au résultat de l'addition, sinon vous aurez juste la partie entiere.

    Le résultat de l'addition sera dans le text de la form, et vous pouvez le placer ou vous voulez.. 

      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.DataGridView1.Rows.Insert(0, New String() {"1.02", "2"})
        Me.DataGridView1.Rows.Insert(0, New String() {"1.1587", "2"})
        Me.DataGridView1.Rows.Insert(0, New String() {"1", "2"})
        Me.DataGridView1.Rows.Insert(0, New String() {"1", "2"})
        Dim i As Single
        Dim Col0_Sum, Col1_Sum As Single
        For i = 0 To Me.DataGridView1.RowCount - 1
          Col0_Sum += Convert.ToSingle(Me.DataGridView1.Rows(i).Cells(0).Value())
          'Col1_Sum += Convert.ToSingle(Me.DataGridView1.Rows(i).Cells(1).Value())
        Next
        Me.Text = String.Format("{0}", Col0_Sum)
        'Me.Text = String.Format("{0} {1}", Col0_Sum, Col1_Sum)
      End Sub
    • Marqué comme réponse marwa580 mardi 20 avril 2010 18:49
    mardi 20 avril 2010 18:18
  • j'ai essayé ce code et c'est bien marché. merciiii beaucouuuup :)
    mardi 20 avril 2010 18:49