Planilha Excel VBA concatenar células com delimitador função critério
Estes macros do aplicativo Microsoft Excel VBA(Visual Basic Application), chama uma uma Função Personalizada, que normalmente é usada como fórmulas, e, concatena dados de diversas colunas específicas com auxilio de
uma instrução For Next e Condição IF podemos chamar uma função com muita facilidade, melhorando substancialmente a performance de seu código. Também aproveitei a oportunidade para adicionar um código, com intuito de treinamento com vba, para concatenar os dados das (linhas/colunas) especificas na célula Ativa.
Espero que o exemplo possa ser útil para o seu treinamento. Fique com Deus, Expedito Marcondes.
‘//==============’
‘Escola saberexcel vba estudos®
Sub sbx_chamando_funcao_criterio()
x = Cells(Rows.Count, “c”).End(xlUp).Row ‘+ 1
Range(Cells(2, “i”), Cells(x, “i”)).Interior.ColorIndex = xlNone
Range(Cells(2, “i”), Cells(x, “i”)).ClearContents
For i = 2 To Cells(Rows.Count, “c”).End(xlUp).Row
If Cells(i, “g”).Value = “NÃO” Then
Cells(i, “i”).Value = “‘/=======SBX========='” ‘aqui poderá inserir seu código satisfazendo criterio NÃO
With Cells(i, “i”)
.Interior.ColorIndex = 36
.Font.ColorIndex = 10
.Font.Size = 9
End With
Else
Cells(i, “i”).Value = ConcatenarB(Range(“C” & i & “:” & “E” & i), “|”)
With Cells(i, “i”)
.Interior.ColorIndex = 4
.Font.ColorIndex = 9
.Font.Size = 9
End With
End If
Next i
End Sub
‘//==============’
Sub sbx_inserir_somente_em_uma_linha()
ActiveCell.Value = ConcatenarB(Range((ActiveCell.Offset(0, -6).Address) & “:” & ActiveCell.Offset(0, 4).Address), “|”)
End Sub
Sub sbx_limpar_teste()
x = Cells(Rows.Count, “c”).End(xlUp).Row + 1
Range(Cells(2, “i”), Cells(x – 1, “i”)).Interior.ColorIndex = xlNone
Range(Cells(2, “i”), Cells(x – 1, “i”)).ClearContents
MsgBox (“Dados foram deletados com sucesso para teste…”), vbInformation, “Escola Saberexcel VBA Estudos®”
End Sub
‘//==============’FUNCÃO ConcatenarB (com delimitador)
‘se fossemos usá-la como fórmula na célula na folha de planilha usariamos algo assim, usariamos uma formula assim:
=ConcatenarB(C2:G2;”|”)
‘Resultado seria………………: Saberexcel|100000-01|NÃO
‘//=====’
‘Ai fizemos o macro com a linha de código para chamar a função sem precisarmos de fórmulas:
‘veja acima: Cells(i, “i”).Value = ConcatenarB(Range(“C” & i & “:” & “E” & i), “|”) – tem exemplos nas Video_Aulas
Function ConcatenarB(sbRange As Range, _
Optional Demilitador As String = “|”)
On Error GoTo SBX
Dim r As Range
Dim Concatenar As String
Application.Volatile
For Each r In sbRange
If Len(r.Text) > 0 Then
Concatenar = Concatenar & r & Demilitador
End If
Next r
If Len(Demilitador) > 0 Then
Concatenar = Left(Concatenar, Len(Concatenar) – Len(Demilitador))
End If
ConcatenarB = Concatenar
Exit Function
SBX: MsgBox “Deve selecionar célula ativa na coluna(i)”, vbInformation, “Escola Saberexcel VBA Estudos®”
End Function
Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Escola SaberExcel VBA Estudos® – Treinamentos com Macros, Fórmulas e Funções.
Compre pelo PagSeguro | Compre pelo PayPal | |
Material Didático: Curso Excel VBA Expert |
Baixe o exemplo de planilha contendo os macros acima: |
Planilha Excel VBA concatenar células com delimitador função critério |
Planilha Excel VBA concatenar células com delimitador função critério