Extrair números de células no Excel

Extrair números de células no Excel

Há funções que o Excel nativamente não faz como se precisa. Neste artigo você verá como extrair números de células no Excel com uma função UDF criada no VBA.

Este artigo surgiu da necessidade de uma leitora que precisava extrair os números de notas fiscais que constavam nos históricos dos lançamentos contábeis.

O que é uma UDF

UDF é a sigla para user defined function no Excel, ou função definida pelo usuário em português.

O Excel possui centenas de funções prontas, mas há necessidades específicas que o mesmo não consegue atender com fórmulas, como é o caso da extração de valores de células.

No Guia do Excel temos várias funções próprias criadas, veja nestes links:

Contar, somar e média pela cor da célula

Como implementar a função de extrair números no Excel

Como criar funções próprias no Excel com VBA

Função para validar inscrição estadual

Como validar e formatar CPF com UDF

Como instalar a função de extrair dados no Excel

Para instalar a função pressione as teclas ALT + F11, depois clique em Inserir->Módulo

No módulo criado cole o código VBA:

Desta forma criei uma função que realiza a extração dos números de células utilizando o VBA abaixo:

'Esta função tem por objetivo retirar números de células que contenham conteúdos mistos de números e texto
'sem a possibilidade de serem colunados
Public Function lfRetiraNumeros(ByVal vValor As String) As String
    'Atualiza o cálculo automaticamente
    Application.Volatile
    
    'Conta a quantidade de caracteres
    Dim vQtdeCaract As Long
    Dim vControle   As Boolean
    
    vQtdeCaract = Len(vValor)
    vControle = False
    
    'Para cada caractere identifica se é número ou texto
    For i = 1 To vQtdeCaract
        'Se for número adiciona no retorno da função
        If IsNumeric(Mid(vValor, i, 1)) Then
            If vControle = True And lfRetiraNumeros <> vbNullString Then
                lfRetiraNumeros = lfRetiraNumeros + "/"
            End If
            vControle = False
            lfRetiraNumeros = lfRetiraNumeros & Mid(vValor, i, 1)
        Else
            vControle = True
        End If
    Next
End Function

Como utilizar a função de extrair números de células

Padrão: =lfRetiraNumeros(Célula de Referência)

Exemplo:

Download

Faça o download da planilha no link abaixo.

Baixe a planilha

Abraço

Marcos Rieper

Curso Excel Completo – Do Básico ao VBA

Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo:

Avalie este post
Sair da versão mobile