Saltar al contenido

Formulas no me toman los valores de los textboxes


Ir a la solución Solucionado por Antoni,

Recommended Posts

publicado

Buenas tardes!

Tengo el siguiente código:

Private Sub btnCargaBancos_Click()

Dim TasaCompra, TasaVenta As Double
Dim InvBanesco, InvVzla, MontoBanesco, MontoVzla As Double
Dim TasaDiaBan, TasaDiaVzla, TasaActual As Double

'Inversion = Val(txtInversion.Text)

InvBanesco = Val(CDbl(txtInverBanesco.Text))
InvVzla = Val(CDbl(txtInverVzla.Text))
TasaCompra = Val(CDbl(txtTasaCompra.Text))
TasaVenta = Val(CDbl(txtTasaVenta.Text))

MontoBanesco = (InvBanesco / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100))

MontoVzla = (InvVzla / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100))

TasaDiaBan = (MontoBanesco / InvBanesco) * (1 - 0.055)
    
TasaDiaVzla = (MontoVzla / InvVzla) * (1 - 0.055)

If TasaDiaBan < TasaDiaVzla Then

    TasaActual = TasaDiaBan

Else

    TasaActual = TasaDiaVzla

End If

MontoBanesco = FormatNumber(MontoBanesco, 2, True, vbFalse)
MontoVzla = FormatNumber(MontoVzla, 2, True, vbFalse)
TasaActual = FormatNumber(TasaActual, 5, True, False)

txtBcoBanesco.Value = MontoBanesco
txtBcoVenezuela.Value = MontoVzla
txtTasaDiaria.Value = TasaActual

End Sub
 

Como se puede apreciar InvBanesco ,  InvVzla , TasaCompra y TasaVenta, son valores que introduce el usuario a través de los respectivos cuadros de texto.

Tengo los siguientes problemas:

a. Las fórmulas no se ejecutan correctamente (pareciese que no reconociese los números entrados vía cuadros de texto).

b. Al darle valor cero (0) a cualquiera de los valores de InvBanesco o  InvVzla, me genera un error en TasaDiaBan o TasaDiaVzla (según sea el caso), aunque, como se puede apreciar, debería generar un valor cero (0).

Como dije en mi presentación estoy empezando en esto de la codificación...y quiero aprender de Uds!

Agradezco su ayuda!

Nota: lamentablemente el fichero es mas grande de lo permitido y no pude anexarlo.

 

  • Solution
publicado

Prueba este código. Sin el archivo no te puedo ajustar más.

Private Sub btnCargaBancos_Click()

'El tipo de dato debe especificase para cada variable
Dim TasaCompra As Double, TasaVenta As Double, InvBanesco As Double, InvVzla As Double
Dim MontoBanesco As Double, MontoVzla As Double, TasaDiaBan As Double, TasaDiaVzla As Double
Dim TasaActual As Double

'Hay que comprobar que los textbox tienen contenido numérico
'Los datos numéricos solo pueden contener números y el separador decimal, cualquier otro caracter dará error al convertir

If Not IsNumeric(txtInverBanesco) Or _
   Not IsNumeric(txtInverVzla) Or _
   Not IsNumeric(txtTasaCompra) Or _
   Not IsNumeric(txtTasaVenta) Then
   MsgBox "Los datos deben ser numéricos", vbCritical
   Exit Sub
End If
InvBanesco = CDbl(txtInverBanesco)
InvVzla = CDbl(txtInverVzla)
TasaCompra = CDbl(txtTasaCompra)
TasaVenta = CDbl(txtTasaVenta)

'Los datos de los divisores no pueden ser 0 (Indeterminación matemática)
If TasaCompra = 0 Or _
   InvBanesco = 0 Or _
   InvVzla = 0 Then
   MsgBox "Los datos no admiten valor cero", vbCritical
   Exit Sub
End If

MontoBanesco = (InvBanesco / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100))
MontoVzla = (InvVzla / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100))
TasaDiaBan = (MontoBanesco / InvBanesco) * (1 - 0.055)
TasaDiaVzla = (MontoVzla / InvVzla) * (1 - 0.055)

If TasaDiaBan < TasaDiaVzla Then
    TasaActual = TasaDiaBan
Else
    TasaActual = TasaDiaVzla
End If

'En VBA, los datos numéricos no admiten ser formateados, formatear directamente en las celdas,

'MontoBanesco = FormatNumber(MontoBanesco, 2, True, vbFalse)
'MontoVzla = FormatNumber(MontoVzla, 2, True, vbFalse)
'TasaActual = FormatNumber(TasaActual, 5, True, False)

txtBcoBanesco = MontoBanesco
txtBcoVenezuela = MontoVzla
txtTasaDiaria = TasaActual

End Sub

 

publicado

Agradecido Antoni!

Tus sugerencias me ayudaron mucho!

Como pudiese hacerte llegar el archivo?

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.