Função VBA UNIRTEXTO, para concatenar valores com um separador

Publicado em 23/06/2017 | (0) comentários

Você já conhece a função UNIRTEXTO do Excel? Caso seu Excel seja 2013 ou superior, você não precisa utilizar esta função VBA abaixo, mas, caso seja uma versão anterior, a função abaixo executa o mesmo procedimento que a UNIRTEXTO.

A função UNIRTEXTO pega um intervalo de valores (linhas ou colunas) e junta em uma única célula, concatenando os valores separados por um caractere ou por um texto qualquer. Você pode concatenar um intervalo imenso de dados separados por vírgula para criar um script SQL, por exemplo.

Criando a função

  1. Acesse o Excel
  2. Clique na aba DESENVOLVEDOR
  3. Clique em VISUAL BASIC
  4. Na janela do VISUAL BASIC clique em INSERIR
  5. Selecione a opção MÓDULO
  6. Cole o código abaixo e salve o módulo como CLASSES
Function JUNTAR(separador As String, ignorarvazio As String, valores As Range)
    
    Dim r As Range
    Dim res As String
    
    Application.Volatile
    'pesquisa na seleção de células
    For Each r In valores
    
        'ignorar vazio
        If ignorarvazio = True Then
            If r <> "" Then
                juntar = juntar & r & separador
            End If
        'não ignorar vazio
        Else
            juntar = juntar & r & separador
        End If
        
    Next r
    
    'desconsidera o separador no final
    If Len(separador) > 0 Then
        juntar = Left(juntar, Len(juntar) - Len(separador))
    End If
    
End Function

Utilizando a função criada

Sua função está criada e se chama JUNTAR. Para utilizar a função basta chamá-la no Excel como se fosse uma fórmula comum.

Declaração da função

Nossa função é declarada da mesma maneira que a nativa UNIRTEXTO. 

=JUNTAR(delimitador; ignorar_vazio; intervalo)
delimitadorCaractere ou texto que irá separar os valores
ignorar_vazioInforme VERDADEIRO para ignorar espaços vazios ou FALSO para mostrar também os espaços vazios
intervaloRepresenta o intervalo que será

Ao declarar a função, informar o separador e se deseja apresentar os espaços vazios, selecione o intervalo. 

O resultado desta fórmula é

A; B; C

Para saber mais sobre VBA clique aqui.