Funciones personalizadas UDF en Excel disponibles en todos los archivos abiertos
Siguiendo con el tema de funciones personalizadas (UDF), tenemos 2 funciones que anteriormente ya les había compartido en este Blog, con la salvedad de que vamos a ver cómo las podemos tener siempre disponibles en todos los archivos abiertos, además de crear una categoría que las aloje.
Funciones siempre disponibles
Para que una función personalizada esté siempre disponible primeramente deberemos tener el código de dicha función en un archivo de Excel, ya sea con extesión .xls o .xlsm. Posteriormente deberemos guardar nuestro archivo como complemento de Excel y añadirlo a la lista de complementos.
Ver video Funciones disponibles en todos los archivos abiertos
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Cómo lo hacemos
La función que usaremos es ExtraeNumero y el código es el siguiente.
Function ExtraeNumeros(celda As Variant) Dim Largo As Integer Dim i As Integer Dim Valor As String Dim Valor1 As String Application.Volatile Definimos el largo de la celda Largo = Len(celda) Recorremos cada caracter de la celda y validamos sin es número For i = 1 To Largo Valor = Mid(celda, i, 1) If Asc(Valor) >= 48 And Asc(Valor) <= 57 Then Valor1 = Valor1 & Valor Else End If Next i El valor concatenado de todos los números los asignamos como resultado de la función ExtraeNumeros = Valor1 End Function
Crear categoría para nuestra función
Para que nuestra función tenga su propia categoría, usamos el siguiente código también en el objeto ThisWorkbook.
Private Sub Workbook_Open() Call DescribeFunctionExtraeNumeros End Sub El código que describe la categoría de la función y sus argumentos Private Sub DescribeFunctionExtraeNumeros() Dim NombreFunc As String 'nombre de la función Dim DescFunc As String 'descrición de la función Dim Categoria As String 'categoría de la función Dim DescArg(1 To 3) As String 'descripción de los argumentos ' NombreFunc = "ExtraeNumeros" DescFunc = "Devuelve los caracteres numéricos de una referencia." Categoria = "MiCategoria" DescArg(1) = "Es la celda de donde se obtendrán los caracteres numéricos." ' Application.MacroOptions _ Macro:=NombreFunc, _ Description:=DescFunc, _ Category:=Categoria, _ ArgumentDescriptions:=DescArg End Sub
Guardar como complemento e instalarlo
Para cualquier modificación a futuro y como lo comentaba anteriormente, primero guardamos nuestro archivo en formato de Excel .xls o .xlsm. Cuando tengamos el código en los módulos ahora lo guardaremos como complemento con extensión .xla o .xlam. La diferencia es que los complementos .xlam sólo pueden abrir en Excel 2007 y posteriores. Por default los complementos se guardan en C:\Users\Usuario\AppData\Roaming\Microsoft\Complementos.
Figura 1. Guardar archivo de Excel como complemento.
Ya guardado nuestro complemento procedemos a instalarlo. En la pestaña Archivo elegimos Opciones. En el formulario de Opciones elegimos Complementos y después damos click en el botón Ir. En el formuario Complementos damos click en el botón Examinar y buscamos nuestro complemento en la ruta donde lo guardaron. Se añadirá a la lista de complementos.
Figura 2. Lista de complementos.
Al instalar el complemento veremos nuestra función dentro de la categoría llamada MiCategoria.
Figura 3. UDF y categoria personalizada.
Anexos
:: Descargar los archivos .xlsm y .xlam
Referencias