Buenas tardes... esto sera un poco confuso ya que no logro explicarlo muy bien.
Tengo un datagrid en el cual calcula el campo Importe por medio de este código
For a = 1 To sprRequisicion.MaxRows
sprRequisicion.Row = a
If GetSpreadValue(sprRequisicion, col_CostoFinal, a) <> "" And GetSpreadValue(sprRequisicion, Col_UPedidas, a) <> "" Then
m_CostoUnitario = Val(GetSpreadValue(sprRequisicion, col_CostoFinal, a))
m_CantidadAplicada = Val(GetSpreadValue(sprRequisicion, Col_CantidadAplicada, a))
m_UnidadesEnRecibiendo = Val(GetSpreadValue(sprRequisicion, col_Recibiendo, a))
m_DesctoFinan = Val(GetSpreadValue(sprRequisicion, Col_DesctoFinan, a))
sprRequisicion.EventEnabled(EventChange) = False
m_CostoUnitario = m_CostoUnitario - (m_CostoUnitario * (m_DesctoFinan / 100))
m_importe = m_CostoUnitario * (m_CantidadAplicada + m_UnidadesEnRecibiendo)
SetSpreadText sprRequisicion, Str(Round(m_CostoUnitario, 4)), Col_PrecioNeto, a
SetSpreadText sprRequisicion, Str(Round(m_importe, 4)), Col_CostoTotal, a
sprRequisicion.EventEnabled(EventChange) = True
Else
sprRequisicion.EventEnabled(EventChange) = False
SetSpreadText sprRequisicion, "", Col_CostoTotal, a
sprRequisicion.EventEnabled(EventChange) = True
End If
hasta ahi todo bien pero lo que quiero ahora es que todas las columnas que tengan el campo aplicar seleccionado, se haga el procedimiento, este es el code,
Dim m_importe As Single
Dim m_importe2 As Single
Dim m_Iva As Single
Dim a As Long
For a = 1 To sprRequisicion.MaxRows
sprRequisicion.Row = a
If GetSpreadValue(sprRequisicion, Col_Aplicar, a) = 1 Then
m_importe = GetSpreadValue(sprRequisicion, Col_CostoTotal, a)
m_importe2 = m_importe2 + m_importe
End If
Next a
m_Iva = m_importe * (TxtIVAProveedor.Text / 100)
m_importe = m_importe + m_Iva
If MsgBox("El Total de Factura es '" & m_importe & "', Desea Continuar?", vbInformation
+ vbYesNo, strSist) = vbNo Then Exit Sub
Pero al correrlo solo me calcular de la celda que tiene seleccionada, no toma en cuenta si esta seleccionada la celda Aplicar.
Ya llevo un rato, me dio vueltas en la cabeza