Disculpa, yo lo hice con Visual Basic, pero te puede servir... Puedes darle formato al datagrid para que la celda esté en formado moneda, y si no hay valor, se ponga un cero, de todos modos, evalua si al recorrer las filas tienes un valor nulo, uno sencillo q hize fue este (ahí te va el codigo, el otro más complicado no lo encuentro... parece q todo me salio bien por tener formateada la celda [el estilo] del datagridview en moneda y la base de datos también en moneda, así q formatea la columna de la hoja de excel y la columna del datagrid)
Código:
Dim totalTratamientos As Double = 0
Dim totalMedicamentos As Double = 0
Dim totalArticulos As Double = 0
Dim descuentoT As Double = 0
Dim descuentoM As Double = 0
Dim descuentoA As Double = 0
Dim totalTotal As Double = 0
Dim totalIva As Double = 0
Try
If Me.dgvTratamientos.Rows.Count > 0 Then
For i As Integer = 0 To Me.dgvTratamientos.Rows.Count - 1
totalTratamientos = totalTratamientos + Me.dgvTratamientos.Rows(i).Cells(4).Value
descuentoT = descuentoT + Me.dgvTratamientos.Rows(i).Cells(7).Value
totalTotal = totalTotal + Me.dgvTratamientos.Rows(i).Cells(9).Value
totalIva = totalIva + Me.dgvTratamientos.Rows(i).Cells(8).Value
Next
End If
If Me.dgvMedicamentos.Rows.Count > 0 Then
For j As Integer = 0 To Me.dgvMedicamentos.Rows.Count - 1
totalMedicamentos = totalMedicamentos + Me.dgvMedicamentos.Rows(j).Cells(5).Value
descuentoM = descuentoM + Me.dgvMedicamentos.Rows(j).Cells(8).Value
totalTotal = totalTotal + Me.dgvMedicamentos.Rows(j).Cells(10).Value
totalIva = totalIva + Me.dgvMedicamentos.Rows(j).Cells(9).Value
Next
End If
If Me.dgvArticulos.Rows.Count > 0 Then
For k As Integer = 0 To Me.dgvArticulos.Rows.Count - 1
totalArticulos = totalArticulos + Me.dgvArticulos.Rows(k).Cells(4).Value
descuentoA = descuentoA + Me.dgvArticulos.Rows(k).Cells(7).Value
totalTotal = totalTotal + Me.dgvArticulos.Rows(k).Cells(9).Value
totalIva = totalIva + Me.dgvArticulos.Rows(k).Cells(8).Value
Next
End If
Catch ex As Exception
MessageBox.Show("No se logró calcular los valores de Resumen", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
End Try
Me.lblImporte.Text = Format(totalTratamientos + totalMedicamentos + totalArticulos, "$ #,##0.00")
Me.lblDescuento.Text = Format(descuentoT + descuentoM + descuentoA, "$ #,##0.00")
Me.lblTotal.Text = Format(totalTotal, "$ #,##0.00")
Me.lblIva.Text = Format(totalIva, "$ #,##0.00")
PD. Lo desglosé un poco más...