Página 1 de 1

Inserir uma linha com uma palavra antes de concatenar

Enviado: 26 Jul 2019 às 03:25
por turbaneja
Alguns dias atrás, o grande guru Jimmy San Juan me ajudou a concatenar duas colunas com muitas linhas através de uma super macro, e sou muito grato a ele pela ajuda.
Mas agora descobri que preciso inserir mais duas linhas:
- uma com um texto fixo (ex: teste1);
- e outra com a informação da "Coluna A" na "Coluna C" , mas sem fazer o cocatenação com a "Coluna B";
Ex:

Coluna A
alfa
beta
charlie

Coluna B
mono
bi
tri

Coluna C (Resultado Esperado)
->teste1
->alfa
alfamono
alfabi
alfatri
->teste1
->beta
betamono
betabi
betatri
->teste1
->charlie
charliemono
charliebi
charlietri

Em anexo está a macro que o mestre Jimmy fez e um exemplo do que eu preciso fazer.

Desde já, muito obrigado pela atenção!

Re: Inserir uma linha com uma palavra antes de concatenar

Enviado: 26 Jul 2019 às 09:57
por osvaldomp
Experimente:
Código: Selecionar todos
Sub Concatena()
 Dim k As Long, i As Long, LR As Long
  LR = Cells(Rows.Count, 1).End(3).Row
  If [C2] <> "" Then Range("C2:C" & Cells(Rows.Count, 3).End(3).Row).Value = ""
   For k = 2 To LR
    Cells(Rows.Count, 3).End(3)(2).Resize(2).Value = Application.Transpose(Array("teste1", Cells(k, 1)))
    For i = 2 To LR
     Cells(Rows.Count, 3).End(3)(2) = Cells(k, 1) & Cells(i, 2)
    Next i
   Next k
End Sub
obs.
1. funciona para qualquer quantidade de linhas com dados nas colunas A:B
2. se quiser colocar o texto "teste1" em uma célula, por exemplo em H1, então substitua no código "teste1" por [H1]

Inserir uma linha com uma palavra antes de concatenar

Enviado: 26 Jul 2019 às 10:49
por turbaneja
Oi Osvaldo, bom dia!
Muito obrigado pela ajuda, mas encontrei um probleminha:

1 - Quando tenho mais linhas na "Coluna A" em relação a "Coluna B", na "Coluna C" aparece uma repetição da "Celula A2" até equalizar essa diferença.
2 - Quando tenho mais linhas na "Coluna B" em relação a "Coluna A", na "Coluna C" fica faltando concatenação das colunas.

Resumindo, quando a coluna A e coluna B tem o mesmo número de linhas está perfeito. Quando existe diferença ocorre esse problema.

Se você conseguir me dar mais esse help, muito obrigado!

Re: Inserir uma linha com uma palavra antes de concatenar

Enviado: 26 Jul 2019 às 11:34
por osvaldomp
Experimente este código abaixo no lugar do anterior.
Código: Selecionar todos
Sub ConcatenaV2()
 Dim k As Long, i As Long
  If [C2] <> "" Then Range("C2:C" & Cells(Rows.Count, 3).End(3).Row).Value = ""
   For k = 2 To Cells(Rows.Count, 1).End(3).Row
    Cells(Rows.Count, 3).End(3)(2).Resize(2).Value = Application.Transpose(Array("teste1", Cells(k, 1)))
    For i = 2 To Cells(Rows.Count, 2).End(3).Row
     Cells(Rows.Count, 3).End(3)(2) = Cells(k, 1) & Cells(i, 2)
    Next i
   Next k
End Sub

Inserir uma linha com uma palavra antes de concatenar

Enviado: 26 Jul 2019 às 11:44
por turbaneja
Perfeito Osvaldo! Você é um mestre guru do Excel tb, parabéns! :)
Muito obrigado!