Página 1 de 1

Número variável de colunas para linhas

Enviado: 31 Jul 2018 às 13:07
por a5766736
Boa tarde,

Tenho um ficheiro com centenas de linhas onde precisava de arranjar uma solução para passar um número variável de colunas para linhas. Cada | representa uma nova coluna.

Exemplo:

Email 1 | Produto 1 | Produto 2 | Produto 3
Email 2 | Produto 1
Email 3 | Produto 1 | Produto 2

O que pretendo é que os dados passem a apresentar-se da seguinte forma:

Email 1 | Produto 1
Email 1 | Produto 2
Email 1 | Produto 3
Email 2 | Produto 1
Email 3 | Produto 1
Email 3 | Produto 2

Conseguem-me ajudar? Existe alguma forma de solucionar este problema?

Obrigado.

Re: Número variável de colunas para linhas

Enviado: 31 Jul 2018 às 15:49
por osvaldomp
Se você quiser experimentar uma solução via macro instale o código abaixo em um módulo comum, assim:
1. copie o código daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor >> Inserir >> Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar
para rodar o código:
6. tecle 'Alt+F8' >> selecione a macro correspondente >> Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 > Opções).
Código: Selecionar todos
Sub TransporDados()
 Dim c As Range, i As Long, m As Long
  [M:N] = ""
  For Each c In Range("A1:A" & Cells(Rows.Count, 1).End(3).Row)
   i = c.End(2).Column
   Cells(m + 1, 13).Resize(i - 1).Value = c.Value
   c.Offset(, 1).Resize(, i - 1).Copy
   Cells(m + 1, 14).PasteSpecial Transpose:=True
   m = m + i - 1
  Next c
End Sub
obs.
1. considerei que os dados brutos estão na coluna A a partir de A2
2. considerei que haverá um mínimo de 2 colunas com dados (A:B) e no máximo 10 (A:J)
3. o resultado será colocado pelo código nas colunas M:N

Número variável de colunas para linhas

Enviado: 01 Ago 2018 às 14:14
por a5766736
Muito obrigado pela ajuda. Vou fazer o teste e depois dou feedback. ;)