funcion personalizada

25/07/2005 - 21:42 por Alejandro | Informe spam
Amigos:
Necesito saber como se pueden crear funciones personalizadas.
Algo como lo siguiente, donde la función seria PERSONIL:

PERSONIL(A1;A3;B4)

y el resultado pueda ser: (a1/a3)^b4

desde ya gracias,

Alejandro

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
25/07/2005 - 22:02 | Informe spam
hola, Alejandro !

... saber como se pueden crear funciones personalizadas.
Algo como lo siguiente, donde la funcion seria PERSONIL:
PERSONIL(A1;A3;B4)
y el resultado pueda ser: (a1/a3)^b4



1) abre el editor de vba [atajo {Alt}+{F11} o... [menu] herramientas / macro / editor de vba]
2) inserta un modulo de codigo 'normal' [p.e. -menu- insertar / modulo]
3) copia/pega lineas +/- como las siguientes [para crear procedimientos 'Function']...
Function Personil( _
ByVal Dividendo As Double, _
ByVal Divisor As Double, _
ByVal Potencia As Double) As Double
Personil = (Dividendo / Divisor) ^ Potencia
End Function
4) haz un 'llamado' a la funcion definida en las hojas del calculo ->del libro que contiene el modulo<- [p.e.]
=Personil(a1;a3;b4)
=> nota: no tiene contemplado un esquema para evitar/prevenir/corregir/... -posibles- datos 'pasados' CON ERROR :-((

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#2 David
25/07/2005 - 22:08 | Informe spam
Para el caso que planteas, la respuesta es sencilla, pero para casos más
complejos, probablemente tengas que estudiar un poco de VBA (Visual Basic for
Applications):

Primero,
entras al Editor de VBA, haciendo clic en Herramientas - Macro - Editor de
Visual Basic.

Segundo,
Insertas un nuevo módulo en tu libro. Al lado izquierdo del Editor de VBA,
buscas el proyecto del archivo que estás trabajando, y haces clic en él.
Luego haces clic en Insertar - Módulo.

Tercero,
Escribes el código de tu función. Una solución (no la más corta, pero sí la
más ilustrativa), sería la siguiente:

Function PERSONIL(a, b, c As Double)
Dim resultado As Double
resultado = (a / b) ^ c
PERSONIL = resultado
End Function

Ahora analicemos el código anterior:

Antes de todo, ten en cuenta que yo utilizo la coma como separador de
listas, así que si el código anterior no te funciona, prueba utilizar punto y
coma en la primera línea.

Function PERSONIL(a, b, c As Double)
La función se llamará PERSONIL, y requiere tres variables. Tienes que
declarar el tipo de dato que vas a ingresar a la misma. Al usar Double,
estoy definiendo que pueden ser enteros o decimales. Puedes usar también
Integer, si tus parámetros serán siempre enteros. Esto hará que tu función
utilice menos memoria, y por consiguiente, sea más rápida.

Dim resultado As Double
Todas los resultados parciales que obtengas al hacer tu función debes
declararlos como variables, e indicar su tipo. Esto hará que la función se
ejecute más rápido.

resultado = (a / b) ^ c
Ejecutas todas las operaciones que sean necesarias, guardando los resultados
de las mismas en variables que ya hayas declarado con la instrucción DIM.

PERSONIL = resultado
Cuando ya tengas el resultado final de tus cálculos, lo guardas en una
variable que tenga el mismo nombre que tu función. Esto hará que ese
resultado se devuelva a la celda activa cuando utilices la función en la hoja
de cálculo.

End Function
Cierras tu código indicando el fin del procedimento Function.

Una solución más corta para que la analices:

Function PERSONIL(a, b, c As Double)
PERSONIL = (a / b) ^ c
End Function


"Alejandro" escribió:

Amigos:
Necesito saber como se pueden crear funciones personalizadas.
Algo como lo siguiente, donde la función seria PERSONIL:

PERSONIL(A1;A3;B4)

y el resultado pueda ser: (a1/a3)^b4

desde ya gracias,

Alejandro
Respuesta Responder a este mensaje
#3 KL
25/07/2005 - 22:30 | Informe spam
Hola chicos,

Solo una cosa creo que seria recomendable declarar todas las variables y el
resultado:

Function PERSONIL(ByVal a As Double, ByVal b As Double, ByVal c As Double)
As Double
PERSONIL = (a / b) ^ c
End Function

Saludos,
KL





"David" wrote in message
news:
Para el caso que planteas, la respuesta es sencilla, pero para casos mas
complejos, probablemente tengas que estudiar un poco de VBA (Visual Basic
for
Applications):

Primero,
entras al Editor de VBA, haciendo clic en Herramientas - Macro - Editor de
Visual Basic.

Segundo,
Insertas un nuevo modulo en tu libro. Al lado izquierdo del Editor de
VBA,
buscas el proyecto del archivo que estas trabajando, y haces clic en el.
Luego haces clic en Insertar - Modulo.

Tercero,
Escribes el codigo de tu funcion. Una solucion (no la mas corta, pero si
la
mas ilustrativa), seria la siguiente:

Function PERSONIL(a, b, c As Double)
Dim resultado As Double
resultado = (a / b) ^ c
PERSONIL = resultado
End Function

Ahora analicemos el codigo anterior:

Antes de todo, ten en cuenta que yo utilizo la coma como separador de
listas, asi que si el codigo anterior no te funciona, prueba utilizar
punto y
coma en la primera linea.

Function PERSONIL(a, b, c As Double)
La funcion se llamara PERSONIL, y requiere tres variables. Tienes que
declarar el tipo de dato que vas a ingresar a la misma. Al usar Double,
estoy definiendo que pueden ser enteros o decimales. Puedes usar tambien
Integer, si tus parametros seran siempre enteros. Esto hara que tu
funcion
utilice menos memoria, y por consiguiente, sea mas rapida.

Dim resultado As Double
Todas los resultados parciales que obtengas al hacer tu funcion debes
declararlos como variables, e indicar su tipo. Esto hara que la funcion
se
ejecute mas rapido.

resultado = (a / b) ^ c
Ejecutas todas las operaciones que sean necesarias, guardando los
resultados
de las mismas en variables que ya hayas declarado con la instruccion DIM.

PERSONIL = resultado
Cuando ya tengas el resultado final de tus calculos, lo guardas en una
variable que tenga el mismo nombre que tu funcion. Esto hara que ese
resultado se devuelva a la celda activa cuando utilices la funcion en la
hoja
de calculo.

End Function
Cierras tu codigo indicando el fin del procedimento Function.

Una solucion mas corta para que la analices:

Function PERSONIL(a, b, c As Double)
PERSONIL = (a / b) ^ c
End Function


"Alejandro" escribio:

Amigos:
Necesito saber como se pueden crear funciones personalizadas.
Algo como lo siguiente, donde la funcion seria PERSONIL:

PERSONIL(A1;A3;B4)

y el resultado pueda ser: (a1/a3)^b4

desde ya gracias,

Alejandro
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida