Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

sumar datos que se encuentran en un mshflexgrid en formato moneda

Estas en el tema de sumar datos que se encuentran en un mshflexgrid en formato moneda en el foro de Visual Basic clásico en Foros del Web. Hola, el problema que tengo es que paso mis valores en formato moneda a un MSHGrid y después los quiero sumar todos para que me ...
  #1 (permalink)  
Antiguo 05/08/2011, 16:58
 
Fecha de Ingreso: julio-2011
Mensajes: 13
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta sumar datos que se encuentran en un mshflexgrid en formato moneda

Hola, el problema que tengo es que paso mis valores en formato moneda a un MSHGrid y después los quiero sumar todos para que me aparesca el valor en un textbox pero me los toma como nulos, supongo que es por el formato peso ya que antes no tenia el formato y me funcionaba perfectamente que puedo hacer para corregirlo? muchas gracias por su ayuda

Este es mi código que uso para agregar los valores a la grilla y para que se vayan sumando

Private Sub Command1_Click()
Text10 = Val(Text13) - Val(Text14)
Text12.Text = Val(Text5) * (Text3)
If grid1.TextMatrix(grid1.Rows - 1, 1) <> "" Then grid1.Rows = grid1.Rows + 1
grid1.TextMatrix(grid1.Rows - 1, 0) = Text2.Text
grid1.TextMatrix(grid1.Rows - 1, 1) = Text4.Text
grid1.TextMatrix(grid1.Rows - 1, 2) = Text8.Text
grid1.TextMatrix(grid1.Rows - 1, 3) = Text13.Text
grid1.TextMatrix(grid1.Rows - 1, 4) = Text3.Text
grid1.TextMatrix(grid1.Rows - 1, 5) = Text10.Text
'la de abajo es donde esta mi total que es el valor que quiero sumar
grid1.TextMatrix(grid1.Rows - 1, 6) = Text14.Text
grid1.Row = grid1.Rows - 1

ganancias = 0
For i = 1 To grid1.Rows - 1
ganancias = Val(grid1.TextMatrix(i, 6)) + ganancias
Next i
Text11 = ganancias


Text15 = Format(Text11, "$ ##,###,##0.00")
'text15 es el text en el que quiero que aparezca mi total el cual primero lo guardo en otro textbox (en ambos me da 0 :()


Text2 = ""
Text4 = ""
Text8 = ""
Text5 = ""
Text3 = ""
Text12 = ""
Label14 = ""
Text9 = ""
Text10 = ""


End Sub
  #2 (permalink)  
Antiguo 08/08/2011, 14:01
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 18 años, 1 mes
Puntos: 6
Respuesta: sumar datos que se encuentran en un mshflexgrid en formato moneda

Te paso una función que utilizo muy seguido a ver si te sirve:

En un Modulo agrega esto:

Código:
Function Sumar(MSHFlexGrid As Object, _
               Columna As Integer) As Currency
                  
On Error GoTo Error_function
  
    With MSHFlexGrid
        Dim Total As Currency
        Dim i As Long
          
        If Columna > .Cols Then
           MsgBox "Columna no válida", vbExclamation
           Exit Function
        End If
           
        ' recorrer  las filas de la grilla
        For i = 1 To .Rows - 1
            ' comprobar que el dato es de tipo numérico con la función IsNumeric de vb
            If IsNumeric(.TextMatrix(i, Columna)) Then
                ' Sumar, obteniendo el valor de la celda con TextMatrix
                Total = Total + .TextMatrix(i, Columna)
            End If
        Next
           
        ' retornar el total de la suma a la función
        Sumar = Total
    End With
       
Exit Function
Error_function:
  
MsgBox Err.Description, vbCritical, "error al sumar"
  
End Function
una vez que la grilla se cargo agrega esto al final para que realices la suma

Código:
ganancias = Format(Sumar(TuGrilla, Tucolumna), "#,##0.000")
Espero te sirva. Saludos

Etiquetas: formato, moneda, mshflexgrid
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:20.