You are on page 1of 16

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

OpenOffice Calc
Apache OpenOffice Calc en espaol

Inicio Writer Calc Impress Base Draw Math


Extensiones Basic
Libro de visitas Manual de Calc Bienvenid@s !!!

Como crear tus propias


funciones para Calc usando
macros
Crear tus
propias
funciones
para Calc
usando
macros es
realmente

Buscar en open-office.es
Buscar

Patrocinados por:

sencillo.

Veamos un sencillo ejemplo como muestra:


necesitamos una funcin que calcule la raiz
(cuadrada, triple, cuarta...) de un valor. Por
supuesto que se puede realizar con una

1 de 16

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

sencilla frmula (por ejemplo, calcular en la


celda B3 la raiz cuarta del valor contenido en

http://blog.open-oce.es/index.php/calc/2011/01/...

Enlaces

la celda A3 es tan sencillo como escribir en


B3 la frmula =A3^(1/4)), pero en este post
slo pretendemos ilustrar cmo crear una
funcin; la complejidad de sta depende de
las necesidades del usuario.

Crear la funcin
Paso 1: Activar el editor de macros
Abre un nuevo documento Calc, y gurdalo con
un nombre, por ejemplo Mi_Funcin.ods.
Activar el editor de macros desde el men
Herramientas > Macros > Organizar macros
> OpenOffice.org Basic....

Ingls para los ms pequeos de


la casa

Botn Me gusta de Facebook


paso a paso

Celda con lista desplegable en


Excel

Tutoriales para tu PC

Acceso de

http://www.facebook.com
%2Fwww.facebook.com
height=235&colorscheme

OOo mostrar el dilogo Macros bsicas de


OpenOffice.org; haz clic sobre el signo + que
se muestra delante del nombre de tu archivo

2 de 16

(en nuestro ejemplo, Mi_Funicn.ods), y


selecciona la carpeta Standard; a
continuacin, haz clic sobre el botn Nuevo.

OpenOfce ES

OOo crear un nuevo mdulo dentro de tu


documento, y solicitar la confirmacin del
nombre de ste; dado que para nosotros es
intrascendente, aceptaremos sin ms.

+ 560

Seguir

+1

Identi.ca Tuenti LinkedIn

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

WebHostal

Paso 2: Escribir la funcin en el editor de


macros
La funcin que vamos a crear es sencilla; la
llamaremos RaizX (sin acento), y precisar que
le indiquemos el nmero y qu raiz deseamos
que calcule; al primer valor lo llamaremos
Numero, sin acento, y al segundo, Raiz,
tambien sin acento.
En el editor Basic teclearemos el siguiente
cdigo justo debajo de la instruccin Sub Main
/ End Sub:

Motor de reservas para pequeos y


medianos hoteles, hostales, pensiones y
albergues

Apache OpenOffice OFICIAL

Function RaizX( Numero, Raiz )


Ten en cuenta que escribimos sin utilizar
acentos, y que ponemos Function, en ingls,
no Funcion, en castellano. Adems, a
diferencia de las funciones que utiliza Calc en
la que los argumentos se separan por puntos y
coma (;) en Basic los argumentos de la funcin
se separan por comas (,).

Descargar Apache OpenOffice OFICIAL

Foro OFICIAL en Espaol

Web OFICIAL de Apache OpenOffice

Con esta instruccin declaramos la funcin


RaizX, que necesitar dos parmetros
(argumentos), a los que llamaremos Numero y
Raiz.

Gracias por tu visita


Acerca_de...

Poltica de privacidad

Aviso legal

Para contactar

A diferencia de las subrutinas, identificadas


como Sub en Basic, las funciones devuelven
un valor, por lo que sern perfectas para
utilizarlas en Calc.
A continuacin, escribiremos una nota

3 de 16

Uso de cookies
Utilizamos cookies propias y de terceros para

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

aclaratoria, para que cualquier usuario que lo


precise, o nosotros mismos, dentro de varios

mejorar nuestros servicios y mostrarle publicidad

meses, nos describa qu hace esta funcin. La


nota aclaratoria es una lnea que empieza por
una comilla sencilla (').

anlisis de sus hbitos de navegacin. Si contina

' Devuelve la raz X de un nmero;


por ejemplo, RaizX( 125, 3)
devuelve la raiz cbica de 125
Tecleamos una tercera lnea, que realmente es
el corazn de esta sencilla funcin. Para
calcular la raiz X de un nmero, debemos
elevar este nmero a 1/X. Matemticamente
es sencillo.

relacionada con sus preferencias mediante el

navegando, consideramos que acepta su uso.


Puede obtener ms informacin, o bien conocer
cmo cambiar la configuracin, en nuestra
Poltica de cookies .

Suscripciones
RSS 2.0:

Publicaciones

Comentarios

Atom:

Publicaciones

Comentarios

Para que la funcin devuelva el valor


calculado, debemos asignarlo al nombre de la
funcin; es tan sencillo como escribir el
nombre de la funcin, un signo igual, y la
operacin matemtica. Teclea la tercera lnea.
RaizX = Numero^(1/Raiz)
Recuerda que no estamos utilizando acentos. Y
observa que utilizamos las mismas
combinaciones de letras maysculas y
minsculas en todo momento. Quizs prefieras
escribir todo en minsculas, o todo en
maysculas. Eso, a tu gusto.
Para finalizar, le indicaremos a Basic que
hemos terminado con nuestra funcin. Tan
slo necesitamos una lnea ms:
End Function
El cdigo debe de quedar tal como muestra la
imagen; las lneas adicionales son para
mejorar la lectura del cdigo.

4 de 16

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

Guardamos el cdigo ( desde el editor Basic,


selecciona desde el men Archivo > Guardar,
o haz clic sobre el botn con forma de
disquete, o pulsa Ctrl + G) y cierra el editor
Basic.
Paso 3: Probar el funcionamiento
En nuestra hoja
de clculo
vamos a teclear
unos datos
(imagen a la
izquierda): En la
celda B2 tecleamos el nmero 125; en las
celdas C2 a C5 tecleamos 2,3,4 y 5; en la
celda D2 escribimos la siguiente frmula:
=RaizX(B2;C2) y pulsamos Intro. Debe de
mostrar como resultado 11,18.
Observa que desde Calc SI que utilizamos ; en
lugar de comas para separar los argumentos.
Corregimos la
frmula para
convertir la celda
B2 en referencia
absoluta (imagen
a la derecha),
por lo que en la celda D2 tendremos la
siguiente frmula: =RaizX( $B$2;C2) y
pulsamos Intro. Ahora extendemos la frmula
al rango D3:D5 y comprobamos que todo ha

5 de 16

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

ido perfectamente.

Dnde almacenar la funcin creada


A la hora de escribir una macro podemos
almacenarla en una de estas dos reas: Mis
Macros o en el documento actual.
Almacenarla en Mis Macros supone que estar
disponible para todas las aplicaciones de OOo,
y por lo tanto, para todos los documentos Calc
que utilicemos. Pero tiene un inconveniente:
esta rea tan slo est disponible en nuestro
equipo; si enviamos por correo un documento
utilizando la funcin, el receptor del
documento no tendr acceso sta, y por lo
tanto, no la podr utilizar.
Al mismo tiempo, si almacenamos la macro en
el documento actual no ser accesible para el
resto de aplicaciones OOo, ni siquiera para
otros documentos creados con Calc. En esta
caso, en cambio, al mandar el documento por
correo, dado que incorpora la funcin creada,
s que podr ser ejecutada por el receptor del
documento.
Podemos almacenar la macro creada en un
documento, y guardar ste como plantilla.
Cualquier documento creado a partir de sta
tendr acceso a la macro, pero seguir siendo
invisible para otros documentos.
Lo ideal, por tanto, ser generar la macro en
el documento, y si deseamos utilizarla en
otros documentos dentro de nuestro equipo,

6 de 16

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

copiarla al rea Mis Macros. Para el caso que


deseamos utilizar la macro en otro
documento, y enviarlo por correo a un
tercero, deberemos almacenar una copia del
cdigo macro en el documento.

Copiar la macro desde el documento a


Mis Macros, y viceversa
Realmente es sencillo; sigue estos sencillos
pasos:
Paso 1: Copiar la macro del documento al
portapapeles

Abrimos de nuevo el editor de macros: desde


el men Herramientas > Macros > Organizar
macros > OpenOffice.org Basic... accedemos
a la macro creada en el documento desde
Mi_Funcin.ods > Standard > Module1
seleccionamos RaizX y pulsamos el botn
Editar.
Ya en el editor Basic, seleccionamos todo el
cdigo de la funcin, lo copiamos al
portapapeles (desde el men Editar > Copiar
o pulsando la combinacin de teclas Ctrl + C).

Paso 2: Pegar la macro del portapapeles al rea

7 de 16

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

Mis Macros

Desde el editor de Basic, hacemos clic sobre el


botn

Seleccionar Mdulo.
Seleccionamos el mdulo Mis Macros >
Standard > Module1, y hacemos clic sobre el
botn Editar.
Justo debajo de la sentencia Sub Main / End
Sub hacemos clic, y pegamos (desde el men
Editar > Pegar o pulsando la combinacin de
teclas Ctrl + V).
Guardamos los cambios en el editor y
cerramos ste.

Resumiendo...
Crear nuestras propias funciones para
utilizarlas en Calc es sencillo; en la mayora de
las veces tan solo necesitamos unos bsicos
conocimientos de programacin en Basic; lo
ms complicado es decidir donde almacenar la
macro que contiene la funcin, y la respuesta
es sencilla: la almacenaremos en Mis Macros y
en el documento, para que en el caso de
enviarlo a un tercero, tenga acceso a toda la

8 de 16

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

funcionalidad de nuestra hoja.

Vota este post votar

0 comentarios

Aade un comentario...

Facebook Comments Plugin

Categoras: Calc , Calc Medio ,


Vers. 3.3.x , Vers. 4.0 , Funciones , Macros
Etiquetas: calcular , celda , macro , udf
03.01.11 28794 visitas
12 comentarios

12 comentarios
Comentario De: Miguel Ortiz [Visitante]
Necesito crear un boton de macros. pero no se
como programarlo con la formula
ejemplo en el casilla b2 tengo el valor 10 que
es un numero decimal pero en la casilla f2
quiero que me muestre el numero binario de
esa cantidad pero no se como programarlo
gracias
27.03.14 @ 18:50

9 de 16

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

Comentario De: slv-es [Miembro]


http://open-office.es
Para Miguel Ortiz:
Hola, no necesitas crear una macro.
Tan slo tienes que poner en la casilla F2
esto: =DEC.A.BIN(B2;8)
Esto muestra en F2 el nmero binario, con 8
cifras, del nmero decimal que contiene B2.
Gracias por tu consulta, si bien en adelante es
preferible que te dirijas al Foro Oficial (en la
columna de la izquierda vers el enlace)
desde donde un numeroso grupo de
voluntarios podrn ayudarte.
27.03.14 @ 19:17

Comentario De: Natalia [Visitante]


Hola, necesito crear un macro. La situacin es
tengo en una hoja una columna que entre
otras variables tiene la variable edad.
Necesito una funcin que me permita crear
una nueva hoja con un cuadro con los
diferentes rangos de edades a modo de
ejemplo, una columna menor a un ao, otra
entre 1 y 4 aos, 5 y 14 etcera. para poder
saber cuantos tengo en esas edades. Estuve
viendo la funcin contar.si y no logro usar, no
s si necesito un macro o esa funcin.
Gracias!!!!
29.04.14 @ 21:25

10 de 16

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

Comentario De: slv-es [Miembro]


http://open-office.es
Eso lo resolvers de forma muy elegante y
fcil con una tabla dinmica .
Mira el ejemplo del apartado Agrupar campos
de tipo Numrico
30.04.14 @ 15:40

Comentario De: Dante [Visitante]


He creado una funcin siguiendo el
procedimiento aqui descripto, pero no logro
que el nombre de la funcin aparezca en el
listado de funciones cuando se hace click en
el botn fx de la barra de frmulas
11.08.14 @ 19:30

Comentario De: slv-es [Miembro]


http://open-office.es
Hola Dante
Las funciones creadas por los usuarios no se
muestran en el botn Fx. Se deben escribir de
forma manual en la barra de frmulas.
12.08.14 @ 21:31

Comentario De: Pedro Rodriguez


[Visitante]
Hola. Quizas la peticin sea un poco extraa.
Tengo un programa en python que desearia
incorporar como macro en Calc. hay alguna
forma de hacerlo directamente o tendra que

11 de 16

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

recodificarlo en Basic?.
Muchas gracias. Saludos.
25.09.14 @ 13:08

Comentario De: slv-es [Miembro]


http://open-office.es
@Pedro: AOO admite tanto OOBasic como
Python.
Te recomiendo que le eches un vistazo a la
wiki oficial; se est desarrollando un apartado
especfico de Python en
https://wiki.openoffice.org/wiki/ES/Manuales
/GuiaAOO/TemasAvanzados/Macros/Python
De momento, nosotros no podemos ayudarte
en este lenguaje, pero en el Foro Oficial
encontrars ayuda
Saludos
25.09.14 @ 15:02

Comentario De: luis [Visitante]


Tengo una tabla con 3 columnas de numeros
(los saco de otra tabla), con los que hago un
grafico. Necesito que al pulsar un boton(mi
idea es asociarlo a un evento para que al
actualizar la primera tabla, actualice el
grafico, de momento el boton me vale), me
ordene de mayor a menor la colunma 2,
seleccin extendida, para que actualice el
grafico. Gracias
13.10.14 @ 07:17

Comentario De: slv-es [Miembro]


http://open-office.es

12 de 16

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

@Luis: Gracias por tu consulta, si bien es


preferible que te dirijas al Foro Oficial (en la
columna de la izquierda vers el enlace)
desde donde un numeroso grupo de
voluntarios podrn ayudarte.
13.10.14 @ 21:09

Comentario De: Claudio [Visitante]


Estimado, necesito crear una funcin que me
devuelva el valor de una celda que contiene
formulas.
Aqu hay una macro que lo que hace es
devolver el valor sobre la misma celda que
contiene la formula y se basa sobre el copiado
y pegado especial:
Sub ConvertirFormulas()
'Copiar la seleccin de celdas
Selection.Copy
'Pegado Especial utlizando xlPasteValues
Selection.PasteSpecial Paste:=xlPasteValues
'Salir del modo de copiado
Application.CutCopyMode = False
End Sub
El problema es que yo necesito una funcin
que obtenga los valores sin borrar la celda
original que contiene la formula.
Le agradezco su ayuda

13 de 16

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

Claudio T
24.11.14 @ 19:46

Comentario De: slv-es [Miembro]


http://open-office.es
@Claudio
Una forma sencilla de obtener el valor de la
celda actualmente seleccionada es
Seleccion =
ThisComponent.CurrentSelection(0)
Tambin puedes utilizar
getCellByPosition(col,fila).getString
Busca en la wiki oficial Macros en OOo Basic
Saludos

24.11.14 @ 23:08

Suscribirse a los comentarios de esta


publicacin

Dejar un comentario
Nombre:

14 de 16

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

http://blog.open-oce.es/index.php/calc/2011/01/...

Email:
Tu direccin email NO ser mostrada en este
sitio.

Texto
comentario:

Opciones:

Auto-BR (Saltos de lnea se

convierten a <br />)

Recordarme (Nombre, email y


pgina web)

Permitir formulario de
mensajes (Permitir que los usuarios
contacten contigo va un formulario de
mensajes; tu email NO se har pblico)

Enviar comentario

Vista previa

Otros visitantes vieron...

15 de 16

04/08/15 09:05

Como crear tus propias funciones para Calc usan...

Atajos de teclado para


redimensionar filas y
columnas en Calc
Calc
permite
utilizar

combinaciones de teclas
(atajos de teclado) para
redimensionar filas y
columnas.

http://blog.open-oce.es/index.php/calc/2011/01/...

Desactivar la
herramienta Entrada
Automtica

Sumar slo nmeros


positivos

Calc
dispone de
una herramienta que, entre
otras tareas, monitoriza los
datos que ests tecleando;
si detecta que el texto que
ests tecleando coincide
con el texto de ot

Las
funciones
matriciales
hacen que
Calc se
comporte de un modo
especial, pues evalua de
forma independiente cada
valor del rango de celdas

Patrocinado por SBS 2015 by slv-es

16 de 16

04/08/15 09:05

You might also like