Página 1 de 1

Concatenar várias células

Enviado: 01 Dez 2017 às 09:03
por MarcosRezende
Pessoal bom dia.

No Excel 2016 sei que existe a função CONTACT, com ela eu consigo concatenar várias células. Porém aqui na empresa eu ainda estou na versão 2013.

Alguém poderia me auxiliar em como criar uma função para unir diversas células, sei que é possível através da UDF, porém no excel eu não sei como fazer. Poderiam me ajudar???


Grato.

Concatenar várias células

Enviado: 01 Dez 2017 às 09:08
por wesleyribeiro123
MarcosRezende
Bom dia,

Use:
Código: Selecionar todos
=CONCATENAR(A1;A2;A3;...;An)

Concatenar várias células

Enviado: 01 Dez 2017 às 09:09
por wesleyribeiro123
Ou simplesmente:
Código: Selecionar todos
=A1&A2&A3&...&An

Concatenar várias células

Enviado: 01 Dez 2017 às 09:14
por MarcosRezende
Obrigado pela resposta, porém não é o que eu preciso, quando falo de várias células estou falando de + ou - 2.000. Fazendo com uma fórmula simples irei levar uma eternidade para montar a fórmula.rsrsrsrsrsrs

Concatenar várias células

Enviado: 01 Dez 2017 às 09:36
por wesleyribeiro123
MarcosRezende

Realmente, ai o cenário já muda...
Uma pergunta, podemos utilizar uma solução em VBA?
Ou deseja que seja apenas com fórmulas nativas do Excel?

Concatenar várias células

Enviado: 01 Dez 2017 às 09:54
por MarcosRezende
Pode sim, acredito que para unir tantas células assim só mesmo uma função em VBA, porém eu não manjo nada. poderia me ajudar?

Re: Concatenar várias células

Enviado: 01 Dez 2017 às 10:07
por gfranco
Bom dia.
Eu uso essa UDF que posto abaixo e que foi escrita pelo mestre Fernando Fernandes.
É uma mão na roda.
Copie o código, cole num módulo e salve a planilha como XLSM .
As explicações estão na própria UDF.
Código: Selecionar todos
Option Explicit
'====================================================================
'Nome.........: UnirTexto *(Criada e incluída no Excel 2016, mas ausente nas outras versões)
'Data.........: 29/03/2016 (dmy)
'Autor........: Fernando Fernandes
'Contato......: Fernando.Fernandes@outlook.com.br
'Descrição....: Concatena todos os textos informados no último parâmetro,
'               usando o delimitador para separá-los, ignorando ou não as células vazias
'Forum........: www.Planilhando.com.br
'====================================================================
Public Function UnirTexto(ByVal Delimitador As String, _
                          ByVal IgnorarVazios As Boolean, _
                          ParamArray Celulas() As Variant) As Variant
On Error GoTo TratarErro
Dim Intervalo   As Variant
Dim Resultado   As String
Dim i           As Long
Dim j           As Long
Dim k           As Long
   
    If UBound(Celulas, 1) < LBound(Celulas, 1) Then
        UnirTexto = VBA.Conversion.CVErr(xlErrValue)
        Exit Function
    End If
   
    For i = LBound(Celulas, 1) To UBound(Celulas, 1) Step 1

        If VBA.Information.IsArray(Celulas(i)) Then
       
            Intervalo = Celulas(i)
            For j = LBound(Intervalo, 1) To UBound(Intervalo, 1) Step 1
                For k = LBound(Intervalo, 2) To UBound(Intervalo, 2) Step 1
                    If Not VBA.Information.IsError(Intervalo(j, k)) Then
                        If Not VBA.Strings.Trim(Intervalo(j, k)) = vbNullString Then
                            Resultado = Resultado & Delimitador & Intervalo(j, k)
                        End If
                    End If
                Next k
               
            Next j
           
        Else
       
            If Not VBA.Information.IsError(Celulas(i)) Then
                If Not VBA.Strings.Trim(Celulas(i)) = vbNullString Then
                    Resultado = Resultado & Delimitador & Celulas(i)
                End If
            End If
           
        End If
       
    Next i

    If VBA.Strings.Len(Resultado) > VBA.Strings.Len(Delimitador) Then
        Resultado = VBA.Strings.Right(Resultado, VBA.Strings.Len(Resultado) - VBA.Strings.Len(Delimitador))
    End If
    UnirTexto = Resultado
    Exit Function
TratarErro:
    UnirTexto = VBA.Conversion.CVErr(xlErrValue)
End Function

Concatenar várias células

Enviado: 01 Dez 2017 às 10:20
por MarcosRezende
Gfranco, obrigado, salvei o módulo como você disse. Na célula estou colocando assim: =UNIRTEXTO(A1:DC1) porém ele me retorna o erro #NOME?. O que estou fazendo errado? Poderia me ajudar?