Ir ao conteúdo

Posts recomendados

Postado

Boa tarde.

 

Tenho uma planilha com 11k+ linhas.

 

Esses dados foram extraídos de um software onde o usuário pode preencher os campos com muita liberdade, portanto, ao gerar o CSV e posteriormente importa-lo no Excel, houveram algumas quebras em um determinado campo que estão me forçando a retrabalhar os dados manualmente na base do CTRL+C e CTRL+V.

 

Exemplo da situação e como estou "resolvendo" manualmente:

a- Identifiquei que na célula A10 há o conteúdo de uma quebra da linha anterior;

b- Edito a célula teclando F2, seleciono o seu conteúdo e copio para a memória, via CTRL+C;

c- Desloco o cursor para a célula G9, que contém o início da célula que foi quebrada, edito ela com o F2 novamente, quebro a linha com um ALT+ENTER e colo o conteúdo da memória;

d- Depois disso desloco o cursor para a célula B10 e seleciono continuamente até a célula X10, copio esse conteúdo para a memória via CTRL+C;

e- Desloco o cursor para a célula H9 e colo as células copiadas através do CTRL+V, pois esse seria o final da formação das colunas originais da tabela.

f- Checo os dados e se tudo está ok aí eu apago a linha 10 inteira e passo para a próxima, e assim por diante.

 

Não tenho conhecimento para fazer uma macro que execute os passos B até o E apenas com um atalho de teclado. Minhas tentativas com o gravador de macro foram todas falhas.

 

Minha ideia é colocar o cursor sobre a célula que eu identificar visualmente e apertar uma tecla que execute estas etapas de B ao E, e não uma coisa que varra automaticamente a planilha inteira, pois alguns registros não quebraram.

 

Há como fazer isso através de uma macro? Como fazer?

 

Grato, de antemão.

 

Obs.: O Office é o 365 ProPlus. Não sei se isso é uma informação relevante, mas fica aí para registro.

Postado

 

Veja se o código abaixo ajuda.

 

Sub Concatena()
 ActiveCell.Value = ActiveCell.Value & Chr(10) & ActiveCell.Offset(1, -6).Value
End Sub

funcionamento ~~~> o código irá concatenar (o conteúdo da célula ativa) & (nova linha) & (o conteúdo da célula 6 colunas à esquerda e 1 linha abaixo da célula ativa).

exemplos com base nos seus comentários, se a posição relativa entre as células não for sempre essa então o código precisará de ajustes:

1. se D9 = sapo e A10 = jacaré, selecionando D9 e rodando o código resultará em D9 conforme abaixo

image.png.65ae34e6fa866de99107d8d05d10f979.png  

 

2. se H9 = PTralha e B10 = robber, selecionando H9 e rodando o código resultará em H9 conforme abaixo

image.png.5c1c4a0a48b5dff68f7a050d7519075b.png

Postado
22 minutos atrás, mag00.barba disse:

A primeira parte de concatenação funcionou como um relógio.

Como assim, "primeira parte"? Existem outras partes ? Que eu saiba a concatenação não se divide em partes.😕

 

Alguma forma de eu conseguir uma outra com os passos D e E?

O código que passei faz o que você descreveu nos itens D e E! Leia o que eu comentei em "funcionamento" e veja o segundo exemplo que coloquei. Se não for isso, então explique.

 

 

 

Postado

Acho que não fui claro na exposição da dúvida. Desculpe-me. Vou colocar novamente em outras palavras.

 

A primeira parte era a concatenação dos dados da célula que quebrava. Isso ficou zerado com o código que você montou. Novamente agradeço por isso.

 

A outra parte (D e E) seria essa citada abaixo:

Em ‎24‎/‎11‎/‎2018 às 15:54, mag00.barba disse:

d- Depois disso desloco o cursor para a célula B10 e seleciono continuamente até a célula X10, copio esse conteúdo para a memória via CTRL+C;

e- Desloco o cursor para a célula H9 e colo as células copiadas através do CTRL+V, pois esse seria o final da formação das colunas originais da tabela.

 

Vamos dizer que nessa segunda parte, eu preciso pegar um conjunto de células de uma mesma linha e reposicionar na planilha, iniciando na primeira célula a direita da célula para onde foi feita a concatenação.

 

Exemplificando de forma diferente, vamos dizer que minha tabela original tinha 10 colunas. De A a J, conforme simulação abaixo:

   A      B      C      D            E           F      G      H      I      J
 Texto  Texto  Texto  Texto  Texto que quebra  Texto  Texto  Texto  Texto  Texto

 

Quando trago o CSV para o Excel, a célula da coluna E quebra e pula parte do conteúdo para a linha de baixo e trás junto o resto da tabela.

 

Então no Excel eu tenho o seguinte resultado logo após a importação:

   A      B      C      D        E        F      G      H      I      J   
 Texto  Texto  Texto  Texto  Texto que 
quebra  Texto  Texto  Texto  Texto      Texto

A primeira parte, fez o texto da coluna E (neste novo exemplo) virar uma coisa só, porém o resto dos dados, de B a F na linha 2 ainda preciso mover na mão para as colunas de F a J na linha 1. Isso é o que chamei de segunda parte.

 

Grato.

Postado

@osvaldomp, consegui fazer as macros.

 

Peguei a sua e fiz umas adaptações e depois pesquisei mais um pouco e fui juntando os pedaços e consegui duas macros distintas mas que fazem o trabalho com muito mais facilidade do que eu estava fazendo na unha.

 

Abaixo segue como ficaram as macros:

Primeira fase

Sub concatena_apaga()
'
' concatena_apaga Macro
' Concatena e apaga linha de baixo
'
    ActiveCell.Value = ActiveCell.Value & Chr(10) & ActiveCell.Offset(1, -6).Value
    ActiveCell.Offset(1, 0).Activate
    ActiveCell.EntireRow.Select
    Selection.Delete Shift:=xlUp
    ActiveCell.Offset(-1, 6).Activate

'
End Sub

Segunda fase

Sub linha_final()
'
' linha_final Macro
' Concatena e move células restantes e apaga linha de baixo
'
    ActiveCell.Value = ActiveCell.Value & Chr(10) & ActiveCell.Offset(1, -6).Value
    ActiveCell.Offset(1, -5).Activate
    ActiveCell.Resize(1, 30).Cut Destination:=ActiveCell.Offset(-1, 6).Resize(1, 30)
    ActiveCell.EntireRow.Select
    Selection.Delete Shift:=xlUp
    ActiveCell.Offset(0, 6).Resize(1, 1).Activate

'
End Sub

 

Obrigado novamente.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...