Função Excel para dividir a célula em colunas diferentes

Gráfico de termômetro Excel
Gráfico de termômetro Excel
22 de abril de 2014
Gráfico Excel com tamanho dinâmico dashboard utilizando Desloc e Nomes definidos
Gráfico Excel com tamanho dinâmico dashboard utilizando Desloc e Nomes definidos
5 de maio de 2014

Objetivo: Disponibilizar uma função Excel VBA para dividir a célula em colunas diferentes a partir de um delimitador e da divisão que for solicitada.

Função Excel VBA para dividir o conteúdo de células em colunas

Agradeço a ajuda técnica do analista de sistemas Jardel Novaes nesta função que apesar do código simples realiza uma tarefa que o Excel deveria realizar nativamente.

Esta função realiza algo semelhante a função Split no VBA, vou explicar melhor, você tem uma coluna com texto separado por um caracter especial do tipo ; ou / por exemplo, há uma forma de fazer com que estes dados sejam separados em colunas utilizando métodos do Excel, mas nem sempre você precisa ou quer fazer com que esta lista simplesmente seja separada, ás vezes você só quer colar estes dados em uma coluna e retornar determinada coluna que seria separada em outra. É o caso que resolve esta função.

Na coluna A do nosso exemplo coloquei uma lista a partir de um relatório TXT que pode ter sido emitido pelo sistema gerencial de uma empresa:

Função Excel VBA para dividir o conteúdo de células em colunas 1

Esta lista foi colocada na coluna A e é separada pelo caracter ; como pode ser reparado na imagem.

Desta forma foi criada a seguinte função VBA Excel:

Public Function gfSplit(ByVal lTexto As String, ByVal lEncontrar As String, ByVal lPosicao As Integer) As String
    Application.Volatile
   
    Dim lVariant() As String
   
    lVariant = Split(lTexto, lEncontrar)
   
    If UBound(lVariant) >= lPosicao - 1 Then
        gfSplit = lVariant(lPosicao - 1)
    End If
   
End Function

Esta função possui as seguintes características:

Nome: gfSplit
Objetivo: Separar o conteúdo de uma célula a partir de seus delimitadores e retornar a coluna desejada.
lTexto: Célula com os dados de origem.
lEncontrar: Identificador especial que servirá para definir o limite entre as colunas.
lPosicao: Coluna que deverá ser retornada na função.
Exemplo: =gfSplit($A1;”;”;1)

Para utilizar esta função você primeiro deve incluí-la na sua lista de funções próprias globais, veja como neste artigo: http://guiadoexcel.com.br/habilitando-a-guia-desenvolvedor-e-copiando-procedimentos-vba-sub-da-internet desta forma a função estará sempre disponível no seu Excel.[saiba_mais]

Veja o resultado do uso da função na divisão do texto da célula em colunas:

Função Excel VBA para dividir o conteúdo de células em colunas 2Download-button

Abraço

Marcos Rieper

3 Comments

  1. Luiz disse:

    O Site guia do Excel me ajudou muito na construção do meu conhecimento em Excel.

  2. Lindi disse:

    Pessoal,

    Tentei fazer essa função mas não da certo, eu preciso de uma função em VBA que separe toda a coluna A pelo delimitador ”-”, só que eu preciso que execute em toda a coluna A

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.