Tu primera UDF en Excel explicada paso a paso @EXCELeINFO

En días recientes me dedicado a desarrollar material con respecto a funciones personalizadas en Excel o UDF por sus siglas en Inglés (User Define Function). Las funciones UDF son prácticamente macros que podemos usar en las celdas de Excel, así como usamos la función SUMA, BUSCARV, pero con instrucciones escritas en macros vba y definiéndole el nombre que deseemos, siempre y cuando no sea el mismo que una función pre construida en el catálogo de Excel.

Diferencia entre UDF y Procedimiento

Bueno, tanto una UDF como un procedimiento de Excel son macros, con la salvedad de que la función UDF la podremos usar en celdas de Excel así como dentro de un procedimiento.

Ejemplo práctico de Excel transformado en UDF

Para este artículo tomé un ejemplo sencillo aplicable con fórmulas de Excel donde deseamos obtener la primera palabra de una celda de Excel, y una vez que entendamos la lógica de las fórmulas, podemos transportarla a una macro de Excel en formato de UDF.

Ver video Tu primera UDF en Excel explicada paso a paso

Suscríbete a EXCELeINFO en YouTube

Extraer la primera palabra de una celda con fórmulas

Pasos para extraer la primera palabra de una celda de Excel usando fórmulas.

Figura 1. Pasos para extraer la primera palabra de una celda de Excel usando fórmulas.

Les enlisto los pasos para extraer la primera palabra de una celda de Excel y les explico la lógica usada:

    1. =ENCONTRAR(“ “,A6). Como cada palara está separada por un espacio, entonces primero debemos encontrar la posición de dicho espacio-
    2. =IZQUIERDA(A6,B6-1). Una vez encontrada la posición del espacio, usamos la función IZQUIERDA para devolver n cantidad de caracteres desde la izquierda. Restamos 1 caracter para omitir el espacio.
    3. =SI.ERROR(C6,A6). En caso de que la función ENCONTRAR no encuentre el espacio, entonces marcará error. Al marcar el error le diremos a Excel que nos devuelva el contenido de la celda.

Ahora bien, una vez entendida la lógica para extraer la primera palabra, esa misma lógica la usaremos en la macro que se usará para crear la UDF, la cual llamaremos PrimeraPalabra.

Creando una UDF paso a paso

En Excel presionamos la combinación de teclas [Alt] + [F11] para abrir el IDE (entorno) de vba (Visual Basic for applications). Una vez abierto el entorno, ubicamos el proyecto correspondiente al archivo y creamos un módulo dando clic derecho.

En un módulo normal crearemos la UDF.

Figura 2. En un módulo normal crearemos la UDF.

Creamos el nombre la función. Usando la palabra Function, definimos el nombre de la función, además de definir que tendrá dos parámetros. El parámetro Celda será la celda que tendrá el texto y el parámetro Convertir podrá usar los números 1 y 2 para devolver el texto en MAYÚSCULAS o minúsculas.

Function PrimeraPalabra(Celda As Range, Optional Convertir As Integer)

Definimos las Variales. Definimos las variables intEspacio y strPalabra.

Dim intEspacio As Integer
Dim strPalabra As String

Función volátil. Le decimos a Excel que la función de actualizarse automáticamente en cada cálculo.

Application.Volatile

Asignamos valor a las Variables. A la variable intEspacio le definiremos la posición donde se encuentre el espacio, y a la varible strPalabra le definiremos el valor de la primera palabra.

intEspacio = Application.WorksheetFunction.Find(” “, Celda)

strPalabra = Left(Celda, intEspacio – 1)

Parámetro opcional. El parámetro Convertir será opción, es decir que si se deja en blanco, devolverá el texto de la celda sin convertir a MAYÚSCULAS o minúsculas. Para recuperar el parámetro escrito usamos Select Case.

‘1 = MAYÚSCULAS
‘2 = minúsculas
‘Omitir = la primera palabra sin cambios
Select Case Convertir
Case Is = 1
PrimeraPalabra = UCase(strPalabra)
Case Is = 2
PrimeraPalabra = LCase(strPalabra)
Case Is = Empty
PrimeraPalabra = strPalabra
End Select
End Function

 

Al final probamos la función ingresando el una celda =PrimeraPalabra y el resultado que nos devolverá es la primer palabra, misma que obtuvimos con las fórmulas.

UDF en Excel.

Figura 3. UDF en Excel.

Código de la macro

'---------------------------------------------------------------------------------------
' Date      : 26-oct-2016
' UDF       : PrimeraPalabra
' Author    : MVP, Sergio Alejandro Campos
' Sites     : www.exceleinfo.com | youtube.com/user/sergioacamposh
' Purpose   : Crear función personalizada para traer la primer palabra de una celda
'---------------------------------------------------------------------------------------

'Forzamos al editor a declarar variables
Option Explicit

Function PrimeraPalabra(Celda As Range, Optional Convertir As Integer)

'Declarar variables
Dim intEspacio As Integer
Dim strPalabra As String

'Le decimos a Excel que la función se calcule automáticamente
Application.Volatile

'Encontramos la posición del espacio
intEspacio = Application.WorksheetFunction.Find(" ", Celda)

'Extraemos caracteres desde la izquierda
strPalabra = Left(Celda, intEspacio - 1)

'1 = MAYÚSCULAS
'2 = minúsculas
'Omitir = la primera palabra sin cambios
Select Case Convertir
Case Is = 1
    PrimeraPalabra = UCase(strPalabra)
Case Is = 2
    PrimeraPalabra = LCase(strPalabra)
Case Is = Empty
    PrimeraPalabra = strPalabra
End Select
    

End Function

Descarga el ejemplo

Descargar el ejemplo Mi primera UDF_2.rar

You may also like...