Visual Basic para Aplicaciones - Leer una linea de texto y evaluarla como linea de código vba

Life is soft - evento anual de software empresarial
 
Vista:

Leer una linea de texto y evaluarla como linea de código vba

Publicado por rauil Martinez (2 intervenciones) el 24/10/2019 14:34:15
Buenos días, he estado buscando si existe una manera de escribir una ecuación en términos de variables en una celda de Excel, como texto, y luego leerla desde una macro para evaluarla con VB. por ejemplo escribir en una celda:
"3 * (sen(x)) ^ 2" y desde VB leerla y evaluarla. lo anterior es para crear una macro que aplique un método de solución de ecuaciones no lineales pero sin que el usuario tenga que entrar al código para escribir la función a evaluar. gracias.
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 Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Leer una linea de texto y evaluarla como linea de código vba

Publicado por Antoni Masana (498 intervenciones) el 24/10/2019 19:49:55
Puedes insertarla en una celda como fórmula y que excel la evalúe, y no hace falta que el usuario la vea.

Puedes insertarla a un SI.ERROR({formula}, "ERROR")

Si devuelve un número la fórmula es correcta y si devuelve un texto es errónea.

Un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Macro1()
    Dim Texto As String
 
    Texto = Range("A1")
    Range("A3").Select
    ActiveCell.FormulaR1C1 = "=IFERROR(" & Texto & ",""ERROR"")"
 
    If IsNumeric(Range("A3")) Then
       MsgBox "Formula Correcta", vbInformation
    Else
       MsgBox "La formula: " & Texto & " no es correcta.", vbCritical
    End If
    Range("A3") = ""
End Sub

Con esta macro pones en la celda A1 3 * 2 y responde correcto pero si pones ( 3 + 5 ) * 2 ) da un error porque falta un paréntesis.

De todas formas no veo como evaluar esto: 3 * (sen(x)) ^ 2 porque para empezar el seno de X es un error.

Saludos.

\\//_
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 Dirk
Val: 50
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Leer una linea de texto y evaluarla como linea de código vba

Publicado por Dirk (20 intervenciones) el 07/11/2019 15:27:52
hola Rauil, entiendo que quieres hacer un banco de fórmulas y evaluar sus resultados y que dependiendo del análisis usas una fórmula u otra, creo que lo mejor sería implementar algo así:

Captura

De esta forma puedes buscar la fórmula por un nombre, llenar las variables y tomas el resultado, puedes ser mas fácil que implementar una fórmula compleja en vba.

Salu2
Dirk
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