Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#35303
Amigos, boa noite!

Tenho a seguinte situação: preciso concatenar 4 colunas, cujo o tamanho é crescente, ou seja, essas colunas todos os dias são alimentas de maneira crescente (vale salientar que existem linhas vazias entre as células).
Preciso de um código que busque automaticamente todo o conteúdo de cada coluna e concatene as 4 numa outra coluna a ser especificada.

Exemplo de colunas para concatenação, conforme acima: colunas 4, 5, 13 e 16.
O resultado disse deve ser copiado para a coluna 23.

Muito agradecido pelo apoio.
#35308
Bom dia.
Isso pode ser feito apenas com fórmula.Nem precisa de VBA
#35325
Oi Franco, boa tarde!
Amigo, tem razão será bem fácil fazer usando fórmulas e eu até sei fazer desta maneira, mas a planilha é bem grande e quando eu a fiz foi usando quase 100% fórmulas para automatizar as tarefas que preciso. Chegou o momento que ela passa 15 minutos só pra abrir e quando quero atualizar um relatório analítico leva bastante tempo também.
As fórmulas consomem muita memoria e a planilha fica muito lenta, desta forma, estou evitando usar fórmulas ao máximo.

Consegui, fazendo pesquisas, o seguinte código que ajuda no que preciso, porém ao longo da execução, onde ele vai fazendo a concatenação, se ele encontra o caractere "#N/D" apresenta erro e pede pra depurar.
Sei que tem um código que posso acrescentar para que o VBA ignore esse caractere e outros mais que representam erro.
Pode me ajudar a melhorar esse código?

CÓDIGO:

'CONCATENAR COLUNAS PARA EXCLUSÃO DE LINHAS EM BRANCO
Sub sbx_concatenar()
For vLin = 2 To Cells(Rows.Count, "O").End(xlUp).Row
Cells(vLin, "W").Value = Cells(vLin, "E") & Cells(vLin, "O") & Cells(vLin, "O")

Next vLin
End Sub
#35330
RafaelVasconcelos escreveu:... se ele encontra o caractere "#N/D" apresenta erro e pede pra depurar.
Suponho que #N/D seja resultado de fórmula, e não texto inserido na célula, é isso?
Em quais das colunas envolvidas é possível que apareça erro ?
Aparecendo erro o que você deseja fazer?


Cells(vLin, "W").Value = Cells(vLin, "E") & Cells(vLin, "O") & Cells(vLin, "O")
O comando acima concatena a coluna E e duas vezes a coluna O. É esse o resultado desejado ou foi erro ao digitar a coluna O duas vezes ?
#35331
Suponho que os erros como #N/D sejam resultados de fórmulas, e não textos inseridos nas células, é isso?
R: Sim. Esses dados que estão sendo concatenados são decorrentes de outra aba da planilha, estão sendo copiados e colados como somente valores (V), e como existem fórmulas, como citou acima, pode ocorrer mesmo de aparecer algum caractere de erro de fórmulas.

Em quais das colunas envolvidas é possível que apareça erro ?
R: Na coluna "O".

Aparecendo erro o que você deseja fazer?
R: gostaria que o código copiasse o caractere de erro (#N/D) como se fosse um texto normal.
Caso não seja possível copiar como o um texto normal, que ele ignore o erro e concatene o que for possível.
#35332
Ia esquecendo...
Cells(vLin, "W").Value = Cells(vLin, "E") & Cells(vLin, "O") & Cells(vLin, "O")
O comando acima concatena a coluna E e duas vezes a coluna O. É esse o resultado desejado ou foi erro ao digitar a coluna O duas vezes ?

R: está errado mesmo.
correto:
For vLin = 2 To Cells(Rows.Count, "O").End(xlUp).Row
Cells(vLin, "W").Value = Cells(vLin, "E") & Cells(vLin, "O") & Cells(vLin, "P")
#35335
Bom dia.
Veja se te ajuda:
Código: Selecionar todos
Sub main()
Dim vlin As Long


For vlin = 2 To Cells(Rows.Count, "O").End(xlUp).Row
    Cells(vlin, "W").Value = Cells(vlin, "E").Text & Cells(vlin, "O").Text & Cells(vlin, "P").Text

Next vlin



End Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord