Poll

Navegador predeterminado de ALDOS

¿Cuál debe ser el navegador predeterminado en ALDOS?

  •  Firefox (opción actual)
  •  Qupzilla
  •  Otter Browser
  •  Seamonkey
  •  Chromium

Resultados
Other polls | 1,466 voters | 1 comentarios

Conectados...

Usuarios invitados: 675

Bienvenido(a) a Alcance Libre 05/09/2025, 22:32

Trabajando con funciones personalizadas en LibreOffice.

Nuestro buen amigo Mauricio Baeza nos envía un interesante artículo referente a las funciones personalizadas en LibreOffice.

Las más de trescientas funciones disponibles en LibreOffice Calc, nos dan una amplia gama de opciones para resolver una gran cantidad de problemas, pero, aun con esta cantidad, puede ser que no todas o la combinación de algunas, no resuelvan nuestras necesidades, en estos casos, podemos hacer nuestras propias funciones. La forma más sencilla es la siguiente, donde tenemos el nombre de la función y el tipo de valor que esperamos que retorne.

Option Explicit

Function MiFuncion() As String

	MiFuncion = "Esta función no hace nada"

End Function

Si vas a la interfaz de Calc, ya puedes usar esta función:



Recuerda que una función, generalmente recibe unos datos llamados parámetros o argumentos, con estos datos, hacemos una serie de operaciones y regresamos el resultado como en el siguiente ejemplo:

Function PerimetroCirculo( Radio As Single ) As Double

Const PI As Single = 3.141592

	PerimetroCirculo = ( 2 * Radio ) * PI
	
End Function 




Las funciones personalizadas son idóneas para reemplazar formulas grandes en Calc donde se usan varias funciones anidadas, por ejemplo, la siguiente formula, recibe una cantidad de días y nos devuelve el resultado en años, meses y días:


La formulas completa que no se alcanza a ver en la imagen anterior es:

=INT(A18/365.2)&" años, "&INT((A18-INT(A18/365.2)*365.2)/30.42)&" mes y "&INT(A18-(INT(A18/365.2)*365.2+INT((A18-INT(A18/365.2)*365.2)/30.42)*30.42))&" días"

Vamos a obtener el mismo resultado con la siguiente función personalizada:

Option Explicit

Function AMD( Dias As Long ) As String
Dim iAnos As Integer
Dim iMeses As Integer
Dim iDias As Integer
Dim sTmp As String
Const sAno As Single = 365.20
Const sMes As Single = 30.42

	iAnos = Dias \ sAno 
	Select Case iAnos
		Case 1 : sTmp = "1 año, "
		Case Else : sTmp = iAnos & " años, "
	End Select
	iMeses = ( Dias - ( iAnos * sAno ) ) \ sMes
	Select Case iMeses
		Case 1 : sTmp = sTmp & "1 mes y "
		Case Else : sTmp = sTmp & iMeses & " meses y "
	End Select
	iDias = Int( Dias - (( iAnos * sAno ) + (iMeses * sMes )) )

	If iDias < 0 Then iDias = 0 

	Select Case iDias
		Case 1 : sTmp = sTmp & "1 día"
		Case Else : sTmp = sTmp & iDias & " días"
	End Select	
	
	AMD = sTmp

End Function
Y el resultado:





Como ves, no puede ser más sencillo.


¡Feliz programación!

Fuente: Universo Libre.

Seguimiento

TURL de seguimiento para esta entrada:
https://blog.alcancelibre.org/trackback.php/trabajando-funciones-personalizadas-libr

Los siguientes comentarios son de la persona que los haya enviado. Este sitio no se hace responsable de las opiniones expresadas por los participantes en los foros y secciones de comentarios, y el hecho de publicar las mismas no significa que esté de acuerdo con ellas.

Comments are closed and no new posts are allowed.

  • Trabajando con funciones personalizadas en LibreOffice.
  • Escrito por:Oscar Hernández sobre 26/07/2011, 08:40

waauuu

Muy bueno, por lo que veo, es como si estuvieras programando en visual basic?

---
Sabio no es aquel que dedica su vida a aprender sino el que la dedica a enseñar.

---
Sabio no es aquel que dedica su vida a aprender sino el que la dedica a enseñar.
---
Sabio no es aquel que dedica su vida a aprender sino el que la dedica a enseñar.
Edited on 26/07/2011, 08:49 by Oscar Hernández
  • Trabajando con funciones personalizadas en LibreOffice.
  • Escrito por:Mauricio Baeza sobre 26/07/2011, 09:07

Hola Oscar...

Si, el LibOBasic es una implementación del añejo, fácil (y medio obsoleto) Basic, pero espera los siguiente artículos donde pasaremos a hacer cosas más interesantes pero con Python...

Saludos

---
__________________________________________________
Todo cuando no podemos dar nos posee... Andre Gide
---
Todo cuando no podemos dar nos posee... Andre Gide