La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Visual-Basic.NET/1075435-sumar-columnas-gridview.html

sumar columnas gridview

sumar columnas gridview

Publicado por bingsiu (12 intervenciones) el 18/02/2009 01:57:55
Tengo un dgridview con informacion extraida de un dataset, la primera columna esta en blanco, en esta columna necesito poner el total de filas que tienen informacion que es del tipo varchar o sea string, este es mi código, lo que pasa es que me devuelve el total de todas las columnas - 1 y yo necesito que me sume solo las que tienen informacion:
Private Sub BTN_ACTUALIZAR_Click
For Each dgvr As DataGridViewRow In Me.Dgview2.Rows
If dgvr.Cells(0).Value Is Nothing Then
dgvr.Cells(0).Value = Me.Dgview2.ColumnCount - 1
End If
Next
End Sub

ejemplo:

Cells(0) Cells(1) Cells(2) Cells(3) Cells(4) Cells(5)

3 no hay dato no hay dato 1598-09 1650-09 1701-09
etc
etc

La suma en Cells(0) es 3 porque solo hay datos en Cells 3, 4 y 5. Muchas Gracias.

RE:sumar columnas gridview

Publicado por FENIX (6 intervenciones) el 20/02/2009 02:07:31
For Each dgvr As DataGridViewRow In Me.Dgview2.Rows
If dgvr.Cells(0).Value Is Nothing Then
dgvr.Cells(0).Value = Me.Dgview2.ColumnCount - 1
End If
Next
End Sub

Bueno el
Me.Dgview2.ColumnCount - 1 lo que hace es el conteo de columnas menos 1
por lo que simpre te va a arrojar la cantidad de columnas -1

lo que requeririas hacer es un for dentro de otro for
uno para ir de fila en fila
y el for interno para validar los datos de cada oclumna

For Each dgvr As DataGridViewRow In Me.Dgview2.Rows

dim colum as integer
((Nos saltamos el conteo d el acomlumna 0 ya que es ali donde ira el valor))
dgvr.Cells(0).Value = 0

for column = 1 to Me.Dgview2.ColumnCount - 1
If dgvr.Cells(column).Value Is Nothing Then
dgvr.Cells(0).Value += 1
End If

next

Next
Espero te sirva
(( ya que solo es la idea )) ok

RE:sumar columnas gridview

Publicado por FENIX (6 intervenciones) el 20/02/2009 19:59:27
For Each dgvr As DataGridViewRow In Me.Dgview2.Rows

dgvr.Cells(0).Value = 0

DIM I AS INTEGER
FOR I = 1 TO Dgview2.ColumnCount - 1

If not dgvr.Cells(i).Value Is Nothing Then
''' no es vacio '''

dgvr.Cells(0).Value + =1

End If

NEXT

Next

RE:sumar columnas gridview

Publicado por bingsiu (12 intervenciones) el 26/02/2009 19:51:52
Gracias Fenix por tu respuesta. La idea de recorrer el gridview es genial, le hice una pequeña modificacion, pero no se porque me sigue dando un error, si tengo 3 celdas con informacion me suma y me pone 3, lo que pasa es que igual si tengo solo 2 celdas con informacion me pone 3, por favor eche un vistazo al código y me dice que está malo, nuevamente muchas gracias.

For Each dgvr As DataGridViewRow In Me.Dgv2.Rows

Dim I, T As Integer

For I = 1 To Dgv2.ColumnCount - 2

If Not dgvr.Cells(I).Value Is Nothing Then
T = 1

dgvr.Cells(0).Value = T + T + T

End If

Next

Next

End Sub

La idea es que si la celda no esta vacia tome el valor de 1 que es la variable T, lo que pasa es que si son 50 columnas tendría que poner T cincuenta veces. Gracias.