Resumen Suma filas o columnas de un flexgrid

Mensaje enviado por "AcrraidX" <lenar666@hotmail.com> el 15/03/2002

Que hay listeros, un grán saludo

Me hice esta función que sirve para sumar los números de una columna o fila de un flexgrid, a mí me ha sido de mucha utilidad, sobre todo cuando se trata de facturación o cosas por el estilo.

Epero que les sea útil a alguien como me ha sido útil a mí, agradecería cualquier critica para implementarla en mi código. Ahí les vá...

Public Function Sumar(Grid As MSFlexGrid, Optional SumVertical As Boolean = True, _
Optional ColOrRow As Long, Optional IncluirFixeds As Boolean = False) As Double

    'esta función suma en un grid una columana o una fila
    'depende si el argumento sumVertical está está establecido a true.
    'si sumvertical está establecido a true hace la sumatoria tomando
    'los valores de la columna especificada en el parámetro ColOrRow,
    'de otro modo la sumatoria se realiza tomando los valores
    'de la fila especificada en el parámetro ColOrRow.
    'incluirfixeds es un parámetro que usa la función para saber
    'si las filas o colmnas fijas también se usarán para tomar los
    'valores a sumar.

    Dim GridTmp As MSFlexGrid
    Set GridTmp = Grid

    'almacena el total.
    Dim totalTMP As Double
    totalTMP = 0

    'contador
    Dim j As Long
    j = 0

    With GridTmp
        If SumVertical Then
            'verificando que la columna especificada sea
            'una columna válida del grid.
            If ColOrRow > (.Cols - 1) Then
                Sumar = 0
                Exit Function
            End If

            'operación incluyendo filas fijas.
            .Col = ColOrRow

            If IncluirFixeds Then
                'bucle de suma.
                For j = 0 To .Rows - 1
                    .Row = j
                    totalTMP = totalTMP + CDbl(Format(.Text, "#,##0.00"))
                Next j

            Else
                'operación exluyendo filas fijas
                'comprobando que hayan mas filas no fijas que fijas.
                If .Rows > .FixedRows Then
                    For j = .FixedRows To .Rows - 1
                        .Row = j
                        totalTMP = totalTMP + CDbl(Format(.Text,"#,##0.00"))
                    Next j
                Else
                    totalTMP = 0
                    Exit Function

                End If
            End If 'de incluirFixeds
        Else 'de SumarVertical.
            'verificando que la fila especificada se una fila
            'válida del grid.
            If ColOrRow > (.Rows - 1) Then
                Sumar = 0
                Exit Function
            End If
            'operación incluyendo columnas fijas.
            .Row = ColOrRow
            If IncluirFixeds Then
                'bucle de suma.
                For j = 0 To .Cols - 1
                    .Col = j
                    totalTMP = totalTMP + CDbl(Format(.Text, "#,##0.00"))
                Next j
            Else
                'operación exluyendo columnas fijas
                'comprobando que hayan mas columnas no fijas que fijas.
                If .Cols > .FixedCols Then
                    For j = .FixedCols To .Cols - 1
                        .Col = j
                        totalTMP = totalTMP + CDbl(Format(.Text,"#,##0.00"))
                    Next j
                Else
                    totalTMP = 0
                    Exit Function
                End If
            End If 'de incluirFixeds
        End If 'de Sumvertical.
    End With
    Sumar = totalTMP
End Function



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com