Realización de cálculos VBA Excel erróneos
Resulta que tengo un contrato con un proveedor.
El problema que tengo es que cuando el gasto que voy a introducir sea mayor al dinero que quede del contrato de proveedor se muestre un MSGBOX y no me deje introducir los datos.
El problema es que he puesto en datos del contrato 1.000.000.000 euros y si pongo un numero alto como 999.999 me salta el MSGBOX y no entiendo el porque.
Si pongo 92 si que me deja
Private Sub Enviar_Click()
If falta_gastar.value < total.value Then
MsgBox (" El PREU TOTAL és superior al la quantitat que resta del contracte. La quantitat disponible és de " & falta_gastar.value & " €")
Total.setfocus
Exit Sub
Else
If totalArt > 0 Then
For i = 0 To totalArt - 1
Dades_taulaRow.Range(i + 1, 1).value = Me.num_consecutiu.Caption
Dades_taulaRow.Range(i + 1, 2).value = Me.num_equipament_final.Caption
Dades_taulaRow.Range(i + 1, 3).value = Me.tipologia_final.Caption
Dades_taulaRow.Range(i + 1, 4).value = Me.nom_equipament_final.Caption
Dades_taulaRow.Range(i + 1, 5).value = Me.municipi.value
Dades_taulaRow.Range(i + 1, 6).value = Me.comarca.value
Dades_taulaRow.Range(i + 1, 7).value = Me.provincia.value
Dades_taulaRow.Range(i + 1, 8).value = Me.Entitat.Caption
Dades_taulaRow.Range(i + 1, 9).value = Me.programa_final.Caption
Dades_taulaRow.Range(i + 1, 10).value = Me.FA_final.Caption
Dades_taulaRow.Range(i + 1, 11).value = Me.pad_final.Caption
Dades_taulaRow.Range(i + 1, 12).value = Me.proveidor_final.Caption
Dades_taulaRow.Range(i + 1, 13).value = Me.list_productes.List(i, 0)
Dades_taulaRow.Range(i + 1, 14).value = Me.list_productes.List(i, 1)
Dades_taulaRow.Range(i + 1, 15).value = Me.total_pad.Caption
Dim Cel As Range
For Each Cel In Range("O3:O9999")
If Not IsNumeric(Cel.value) Then
Cel.value = WorksheetFunction.Trim(Cel.value)
ElseIf TypeName(Cel.value) = "String" Then
Cel.value = Cel.value + 1 - 1
End If
Next Cel
Dades_taulaRow.Range(i + 1, 16).value = Me.data.value
Next i
Else
MsgBox "No hi ha material a la llista", vbInformation, "Res..."
Exit Sub
End If
End If
MsgBox ("ENREGISTRAT CORRECTAMENT")
End sub
Respuesta de Carlos Arrocha
1
2 respuestas más de otros expertos
Respuesta
1
Respuesta de Andy Machin
1
