Formula personal

26/10/2006 - 17:27 por Alejandro Garcia | Informe spam
Como hago para crear una "funcion" y se pueda usar como si estuviera
llamando, por ejemplo, BUSCARV, osea, que le de en el icono de autosuma
y buscar la que yo cree y usarla como cualquiera otra que este alli.
¿Esto se puede?, se que vi algo parecido hace años pero no recuerdo
como hacer esto.

Gracias

Preguntas similare

Leer las respuestas

#1 David
26/10/2006 - 18:19 | Informe spam
Supongamos que necesitas una función que por omisión te tome dos datos a su
izquierda. La celda de más a la izquierda contendrá el monto del mes
inicial, la siguiente el monto del mes final, y el proceso a ejecutar es
calcular el crecimiento porcentual entre el mes inicial y final.

Lo primero sería que elaboraras la función:

Function CrecimPor(Mes_1 As Double, Mes_2 As Double)
CrecimPor = (Mes_2 - Mes_1) / Mes_1
End Function

Para no tener que introducirla manualmente, podrías desarrollar ahora un
procedimiento que capturara por omisión las dos celdas a la izquierda, y
generara la función anterior con ellas:

Sub AplicarCrecimPor()
ActiveCell.FormulaR1C1 = "=CrecimPor(RC[-2],RC[-1])"
ActiveCell.NumberFormat = "0.00%"
End Sub

Este procedimiento, lo podrías asignar a un botón, tal y como comentas en tu
consulta. Si las celdas por omisión no correspondieran en algún momento a
las que vas a analizar, sólo presionas F2, y "arrastras" los rangos hacia los
valores correctos.

Comentas si es lo que necesitabas.




"Alejandro Garcia" escribió:

Como hago para crear una "funcion" y se pueda usar como si estuviera
llamando, por ejemplo, BUSCARV, osea, que le de en el icono de autosuma
y buscar la que yo cree y usarla como cualquiera otra que este alli.
¿Esto se puede?, se que vi algo parecido hace años pero no recuerdo
como hacer esto.

Gracias



Respuesta Responder a este mensaje
#2 Alejandro Garcia
26/10/2006 - 22:01 | Informe spam
No es exactamente lo que tenia en mente, yo pensaba mas bien en algo
como una funcion definida por el usuario, que si yo doy, por ejemplo:
=Mifuncion(a1,b2) me haga lo que deseo que me haga con la macro
Mifuncion, tomando como parametros a1 y b2. Eso es lo que necesito,
poder usarla de esta forma

=Mifuncion()

No se si me hago entender.
Respuesta Responder a este mensaje
#3 David
26/10/2006 - 22:28 | Informe spam
No entiendo muy bien lo que quieres, pero...

Una función de usuario, que es lo que interpreto que necesitas, no se
comporta igual que una macro, pues se limita únicamente a tomar uno o más
parámetros, y a retornarte un valor a partir de los mismos, según las
operaciones que definas en ella. Si ésto es lo que buscas, considera las
siguientes ideas:

La sintaxis para crear una función de usuario es:

Function NombreFunción([Parámetro1 as tipo], [Parámetro2 as tipo], ... ) [as
tipo]
Operaciones del usuario con los parámetros...
NombreFunción = Resultado
End Function

¿Ejemplo? Supón que quieres calcular la hipotenusa según el teorema de
Pitágoras cuando te dan los valores de los catetos como enteros. Podrías
diseñar una función como la siguiente:

Function MiHipotenusa(Cateto1 as integer, Cateto2 as integer)
Dim Suma as integer
If Cateto1<=0 or Cateto2<=0 then
MiHipotenusa = "Error"
Else
Suma = Cateto1 ^ 2 + Cateto2 ^ 2
MiHipotenusa = Suma ^ (1/2)
End If
EndFunction

Observa que...

Puedes declarar variables para hacer cálculos con los parámetros.

Puedes utilizar variables para guardar resultados parciales. También puedes
utilizar ciclos, condiciones, etc.

El valor que quieres que la función retorne a la hoja, lo debes asignar al
nombre con que la definiste. Ese es el propósito de las líneas:
MiHipotenusa = "Error"
y
MiHipotenusa = Suma ^ (1/2)

Cuando has terminado tu función, puedes hacer clic en el botón Fx, buscar la
categoría "Definidas por el usuario", e ingresar los parámetros con el
asistente "Pegar Función".




"Alejandro Garcia" escribió:

No es exactamente lo que tenia en mente, yo pensaba mas bien en algo
como una funcion definida por el usuario, que si yo doy, por ejemplo:
=Mifuncion(a1,b2) me haga lo que deseo que me haga con la macro
Mifuncion, tomando como parametros a1 y b2. Eso es lo que necesito,
poder usarla de esta forma

=Mifuncion()

No se si me hago entender.



Respuesta Responder a este mensaje
#4 Alejandro Garcia
27/10/2006 - 13:59 | Informe spam
David, perdoname pero no he podido dar con la ultima parte que me
dices, yo tengo la funcion tal cual me das el ejemplo pero la parte de:

"Cuando has terminado tu función, puedes hacer clic en el botón Fx,
buscar la categoría "Definidas por el usuario", e ingresar los
parámetros con el asistente "Pegar Función"."

No la he podido implementar, hago lo que me dices pero no me aparece.
Estuve buscando post viejos y encuentro mas o menos referencias pero
nada en concreto.
Respuesta Responder a este mensaje
#5 David
27/10/2006 - 16:03 | Informe spam
Alejandro, el bótón Fx es el que en versiones 2000 o anteriores de Office
aparece un poco antes del botón del zoom. En versiones XP o posteriores,
aparece al lado izquierdo de la Barra de Fórmulas, a la par de donde se
muestra el nombre de la celda activa.

Es probable que alguna personalización haya removido ese botón de tu Excel,
pero también puedes acceder a su funcionalidad dando clic en el menú Insertar
y luego en Función. Esto hará que aparezca un cuadro de diálogo, y en la
parte superior del mismo un cuadro de lista llamado "Seleccionar una
categoría" o algo parecido.

Supongamos que la función personalizada que creaste se llama MiHipotenusa(
), como en el ejemplo anterior. Haces clic en la lista "Seleccionar una
categoría", y te desplazas hasta el final de la misma. Allí encontrarás una
categoría llamada "Definidas por el usuario". Cuando la selecciones, se
mostrarán las funciones personalizadas de tu libro.

Si no aparece la que buscas, comentas nuevamente. Es posible que el código
lo hayas ingresado en un lugar incorrecto...

Éxitos, y saludos...



"Alejandro Garcia" escribió:

David, perdoname pero no he podido dar con la ultima parte que me
dices, yo tengo la funcion tal cual me das el ejemplo pero la parte de:

"Cuando has terminado tu función, puedes hacer clic en el botón Fx,
buscar la categoría "Definidas por el usuario", e ingresar los
parámetros con el asistente "Pegar Función"."

No la he podido implementar, hago lo que me dices pero no me aparece.
Estuve buscando post viejos y encuentro mas o menos referencias pero
nada en concreto.



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