Visual Basic - Ejecutar Formula en una variable

Life is soft - evento anual de software empresarial
 
Vista:

Ejecutar Formula en una variable

Publicado por Andrea (5 intervenciones) el 07/11/2007 11:22:10
Hola a Todos,
alguien podria decirme si existe una funcion o comando que me ejecute una formula que este cargada en una variable..
Por ejemplo yo tengo la var stF= 3+4+5+6+0, quiero que stF obtenga el valor de la formula para este caso stf=18..
Si defino stF como variant me toma a la formula como STring y si la defino como variable numerica me da error....

Gracias por su ayuda.
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

RE:Ejecutar Formula en una variable

Publicado por ivan (1039 intervenciones) el 07/11/2007 16:13:24
Hola,
Si en el equipo está instalado Microsoft Office, marca en el proyecto la referencia"Microsoft Excel xx Object Library" (xx es la versión que tengas) y pon este código:

Dim vResultado As Variant, stF As String
stF = "3+4+5+6+0"
vResultado = Evaluate(stF)
MsgBox vResultado

Y si no, buscas el componente de VB "Microsoft Script Control 1.0", colocas el control en el formulario (nombre por defecto = ScriptControl1) y modificas la instrucción

vResultado = ScriptControl1.Eval(stF)
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

RE:Ejecutar Formula en una variable

Publicado por alexis (1 intervención) el 04/03/2008 00:45:39
Adicionalmente tu puedes armar tu formula y reemplazar los valores utilizando
la libreria de excel referenciada a tu proyecto o el control ocx scriptcontrol

ejemplo:

en tu Base de datos tienes una formula (DIAS*PORCENTAJE) * (1-DESCUENTO)

private function resultado (formula) as double
dim intDias as integer
dim dblPorcentaje as double
dim dblDescuento as double
dim varResultado as variant

intDias = 243
dblPorcentaje = 3.95
dblDescuento = 0.59
formula = Replace(formula, "DIAS", intDias)
formula = Replace(formula, "PORCENTAJE", dblPorcentaje)
formula = Replace(formula, "DESCUENTO", dblDescuento)

tu variable formula queda asi
(243*3.95)*(1-0.59)

varResultado = ScriptControl1.Eval(formula) 'usando el control scriptcontrol.ocx
varResultado = Evaluate(formula) 'usando la referencia msExcel

msgbox varResultado

tu resultado sería 393.5385
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