Visual Basic para Aplicaciones - Calculadora excel vba

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Calculadora excel vba

Publicado por fjpg (135 intervenciones) el 20/09/2019 13:45:13
Hola buenas.
Encontre un codigo, para crear una calculadora en vba. Y la he añadido a mi proyecto.

Pero resulta que solo funciona con numeros enteros. Al teclear un numero con decimales salta error 13, no coinciden los tipos.

el Codigo es para cada boton del 0 al 9:
1
2
3
4
5
6
7
8
9
'Adaptado a cada boton del 0 al 9
Private Sub cmb_0_Click()
TextBox1.Text = TextBox1.Text & "0"
End Sub
 
'Adaptado a cada boton de +,-,*,/, y la "," para los decimales
Private Sub cmb_division_Click()
TextBox1.Text = TextBox1.Text & "/"
End Sub

Y este codigo para el boton =:
1
2
3
Private Sub cmb_igual_Click()
TextBox1.Text = Application.Evaluate(Me.TextBox1.Value)
End Sub

funciona perfecto para numeros enteros pero a la hora de meter decimales salta el error

Dejo el archivo solo de la calculadora, es el mismo codigo que tengo en mi proyecto
A ver si podeis echarme una mano.

GRACIAS!!!

P.D. No se si se podia poner al autor del codigo, por eso no lo puse.
Todo el merito es suyo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de gilman
Val: 138
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Calculadora excel vba

Publicado por gilman (47 intervenciones) el 20/09/2019 14:12:43
El problema es que la función Application.Evaluate requiere que el separador decimal sea el '.' y tú estás usando la ','.
Prueba con:
1
Application.Evaluate(Replace(Me.TextBox1.Value, ",", "."))
Ten en cuenta que si se cambia la configuración regional el programa dejará de funcionar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Calculadora excel vba

Publicado por fjpg (135 intervenciones) el 20/09/2019 18:41:18
Cambiando la configuracion regional la "," por el "." no hizo falta cambair el codigo.

Funciona perfecto.

Gracias gilman.

Y para sacar el porcentaje, como seria??XD XD XD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de gilman
Val: 138
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Calculadora excel vba

Publicado por gilman (47 intervenciones) el 21/09/2019 09:11:02
Pues cambiar la configuración regional no debería haber funcionado.
Por otro lado cambiar la configuración regional para que un código funcione es mala idea, imaginate que cada vez que ejecutas un programa diferente tuvieses que hacerlo, los programas deben adaptarse a la configuración regional del equipo y no al reves.
En cuanto al tanto por ciento, tal y como está planteada el funcionamiento de la calculadora, es complicado implementarlo en una sola tecla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Calculadora excel vba

Publicado por fjpg (135 intervenciones) el 21/09/2019 11:57:25
Pues si funcionó, XDXDXDXD

Y como se podría hacer lo del %??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Héctor Madriz
Val: 131
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Calculadora excel vba

Publicado por Héctor Madriz (29 intervenciones) el 24/09/2019 04:52:03
Buen día FJPG, si la calculadora personalizada interactúa con los datos del libro o tiene alguna función especializada entonces se justifica utilizarla, de lo contrario te recomiendo utilizar la calculadora que viene incorporada en el Sistema Operativo o habilitar una o dos celdas para que el usuario ejecute cálculos rápidos.

1
2
3
Sub AbrirCalculadora()
    Shell ("Calc.exe")
End Sub

o

En la celda A1 expresión matemática (Ejemplo: 20+10-5 , 5^3 , 15*20%, etc) y en la celda siguiente resultado
1
2
3
4
5
6
7
8
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Salir
    If Target.Address = "$A$1" And Trim(Target) <> "" Then
       Formula = Replace(Target.Value, ",", ".")
       Target.Offset(0, 1) = Application.Evaluate(Formula)
    End If
Salir:
End Sub
Nota: con que el usuario coloque "=expresión matemática" en una celda también tendría el mismo resultado

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Calculadora excel vba

Publicado por fjpg (135 intervenciones) el 24/09/2019 12:44:02
No, no interactua con los datos del libro.

Era para tenerla de info, sin mas. Es funcionable, solo faltaba ese boton.

GRACIAS por la recomendacion Héctor!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MIGUEL
Val: 424
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Calculadora excel vba

Publicado por MIGUEL (121 intervenciones) el 24/09/2019 22:06:29
Buenas fjpg

Dejo el archivo con el %, utilice el Replace() para que no me hiciera locuras, veo que cambiaste tu configuración, tendrás que quitárselo

A ver si te sirve.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Calculadora excel vba

Publicado por fjpg (135 intervenciones) el 24/09/2019 23:00:16
JODER MIGUEL, I M P R E S I O N A N T E !!!!!!

Ojala tuviera yo vuestro nivelaco!!!

GRACIAS CRACK!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar