Concatenar VBA

Objetivo: Demonstrar função global criada em VBA para resolver uma restrição da função Concatenar do Excel.

A função Concatenar do Excel é uma das principais funções de texto do Excel, a sua função é de concatenar valores em uma célula. No entanto esta função tem uma restrição chata, ela não permite que você selecione diversas células de uma só vez para realizar a concatenação.

Desta forma criei uma função em VBA que resolve este problema, você poderá selecionar diretamente um intervalo de células que será separado por um delimitador definido também na própria fórmula, ganhando assim um bom tempo.

A função funciona da seguinte forma:

  • gfConcatenar(Intervalo; Delimitador) -> Função que une um intervalo de células separando as informações concatenadas por um delimitador.

Sendo:

  1. Intervalo: intervalo de células a serem concatenadas
  2. Delimitador: separador dos dados das células
  3. Exemplo: =gfConcatenar(A2:A18;”-“)

Para usar a função você deve implementar a função abaixo conforme o artigo http://guiadoexcel.com.br/criando-funcoes-proprias-globais.

Código:

'Função que concatena dados de um range
'lRange = Intervalo de dados a concatenar
'lSeparador = String de separador definido pelo usuário
Public Function gfConcatenar(ByVal lRange As Range, Optional ByVal lSeparador As String) As String
    Application.Volatile

    Dim lCel As Range

    If lRange Is Nothing Then
        gfConcatenar = ""
    Else
        For Each lCel In lRange
            If lCel.Value  "" Then
                If gfConcatenar = "" Then
                    gfConcatenar = CStr(lCel.Value)
                Else
                    gfConcatenar = gfConcatenar + lSeparador + CStr(lCel.Value)
                End If
            End If
        Next lCel
    End If
End Function

Baixe a planilha

Até a próxima

Marcos Rieper