Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

VBA: una función para gobernarlas a todas

En el pasado post hablamos de algunos de los métodos del objeto Application...
En el día de hoy aplicaremos uno de ellos .Evaluate, que nos permitirá trabajar con cualquier función de tipo lineal (una variable).
Crearemos de una manera muy sencilla una función para gobernarlas a todas. (Si Mr. Tolkien me permite la licencia...)


En la ventana de código de un módulo estándar incluimos el siguiente procedimiento:

Function FuncionesLineales(fx As String, valor_x As Double) As Double
'aplicamos dos reemplazamientos
'1- para cambiar la variable por el valor concreto asignado
'2- tenemos en cuenta el cambio de configuración de los separadores decimales
'(recuerda que en el entorno del editor de VB el separador decimal es el punto, y no la coma!!)
func = Replace(Replace(fx, "x1", valor_x), ",", ".")

'retornamos el valor a la función creada
FuncionesLineales = Application.Evaluate(func)

End Function


Veamos el uso de nuestra UDF recién creada:



Comprobamos cómo a partir de una función expresada como cadena de texto en una celda, somos capaces de convertirla en una función 100% operativa.
Como se observa en la imagen la misma función creada 'FuncionesLineales' aplicada sobre diferentes celdas/funciones, devuelve los datos correspondientes...
Relevante es llamar a nuestra variable como 'x1' (equis uno) para que el reemplazamiento funcione correctamente...

OJO: la función debe emplear los términos, operadores o nombres de funciones en algo entendible en el entorno de programación.


This post first appeared on EXCEL FORO: EJERCICIOS, EJEMPLOS, SOLUCIONES, DUDA, please read the originial post: here

Share the post

VBA: una función para gobernarlas a todas

×

Subscribe to Excel Foro: Ejercicios, Ejemplos, Soluciones, Duda

Get updates delivered right to your inbox!

Thank you for your subscription

×