Función definida por el usuario VBA, Extraer Números

Posted on Actualizado enn

Excel permite crear Funciones definidas por el usuario, de esta forma cuando necesitamos un cálculo que no está dentro de ninguna función de Excel, podemos crear una propia.

Por ejemplo, si necesitamos extraer los números de una celda que contenga un dato con texto y números, debemos definir una función propia ya que Excel no contempla esta posibilidad.

Imaginemos la columna A con códigos y necesitamos sólo los números de éstos en la columna B.

ExtraerNúmeros 3

Para resolverlo podemos crear una función propia a través del editor de VBA.

Una vez abierto, ALT+F11, desde el menú Insertar > Procedimiento, marcas la opción Función , copia el código siguiente, (recuerda que cuando aparece ( ) antes del texto es una aclaración).

Public Function EXTRAER_NÚMEROS(Celda As Variant)
‘Función para extraer los números de una celda que_
‘contenga texto y números.
‘Por ejemplo un código: XM12JAS45Z09 12 caracteres, resultado 124509

‘1º Declaramos las variables

Dim Largo As Integer    ‘Almacena el número de caracteres de la celda
Dim i As Integer        ‘Lo utiliza para crear el bucle que busque los números
Dim Valor As String     ‘Almacena el número
Dim Valor1 As String    ‘Lo utiliza para unir todos los números en el bucle

Application.Volatile
                        ‘Volatile: se actualizará cuando se efectúe un cálculo_
                        ‘en alguna celda de la hoja en la que aparezca esta función.

Largo = Len(Celda)      ‘Definir la longitud de caracteres de la celda 12

‘2º Comprobar si es número, cada uno de los caracteres de la celda

For i = 1 To Largo      ‘ Repetirá el bucle 12 veces comprobando cada caracter
    Valor = Mid(Celda, i, 1) ‘Argumentos de la función Mid(Texto,_
                             ‘posición inicial, num caracteres)
    
    If Asc(Valor) >= 48 And Asc(Valor) <= 57 Then ‘ Comprueba si es número o texto
    Valor1 = Valor1 & Valor
    Else
    End If
Next i

‘El valor concatenado de todos los números los asignamos
‘como resultado de la función

EXTRAER_NÚMEROS = Valor1

End Function

Una vez copiado el código, cierra el editor VBA, la función estará disponible dentro de la categoría Definida por el usuario.

ExtraerNúmeros 2

Ya puedes usarla para extraer los números de las celdas.

Descargar archivo con ejemplo

Función ExtraerNúmeros VBA

About these ads

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s