Notifications
Clear all

Transformar linhas em colunas com condição

8 Posts
3 Usuários
0 Reactions
1,559 Visualizações
(@shroeder)
Posts: 57
Trusted Member
Topic starter
 

Oi,

Tenho um ficheiro com uma tabela que pode ter muitas linhas e 3 colunas.

A ideia seria transformar colunas da "Tabela1" para linhas da "Tabela2" se o valor for maior do que 0. No final da checkagem das 3 colunas, passaria para o seguinte.

No exemplo, John tem "Product A" e "Product C" com valor. O resultado esperado está na sheet2. De seguida passaria para o Peter, depois o Walter, até à ultima linha preenchida.

Não tenho experiência quase nenhuma em VBA e nem sei se isto é possivel.

Toda a ajuda será util. Obrigado.

 
Postado : 24/01/2018 10:43 am
(@osvaldomp)
Posts: 858
Prominent Member
 

Experimente:

Sub OrganizaDados()
 Dim r As Range, i As Long
 For Each r In Sheets("Sheet1").Range("B4:B" & Sheets("Sheet1").Cells(Rows.Count, 2).End(3).Row)
  With Sheets("Sheet2")
   For i = 1 To 3
    If r.Offset(, i).Value <> 0 Then
     .Cells(Rows.Count, 3).End(3)(2) = r.Value
     .Cells(Rows.Count, 4).End(3)(2) = Sheets("Sheet1").Cells(3, i + 2)
     .Cells(Rows.Count, 5).End(3)(2) = r.Offset(, i).Value
    End If
   Next i
  End With
 Next r
End Sub

Osvaldo

 
Postado : 24/01/2018 1:00 pm
(@shroeder)
Posts: 57
Trusted Member
Topic starter
 

Obrigado.

A parte das linhas está ok. No entanto, não está a colocar os valores à frente das linhas criadas.

Cumprimentos,

 
Postado : 25/01/2018 3:52 am
(@osvaldomp)
Posts: 858
Prominent Member
 

O código que eu sugeri, aplicado no arquivo que você disponibilizou retorna o resultado abaixo na planilha Sheet2, que é igual ao resultado que você colocou como desejado. O que exatamente estaria faltando?

...C............D..............E
John........Product A.....100
John........Product C.....200
Peter........Product B.....100
Peter........Product C.....200
Walter......Product A.....500
Walter......Product B.....600
Walter......Product C.....700

Osvaldo

 
Postado : 25/01/2018 5:36 am
(@shroeder)
Posts: 57
Trusted Member
Topic starter
 

Comigo não está funcionando.

Veja anexo pff.

Obrigado.

 
Postado : 25/01/2018 10:10 am
gfranco
(@wzxnet7)
Posts: 653
Honorable Member
 

Boa tarde.
Segue minha contribuição.
fiz com o power query e deixei apenas uma macro simples de atualização.
Veja se te ajuda.

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 25/01/2018 10:28 am
(@osvaldomp)
Posts: 858
Prominent Member
 

Problemas com células mescladas.

Na planilha Sheet2 coloque cabeçalhos de colunas na linha 3 (abaixo das células mescladas que estão na linha 2). Exemplo: C3=nome, D3=prod, E3=val.

Ou exclua a linha 2 que está com células mescladas (sugestão - nunca mescle células no Excel) e se quiser coloque cabeçalhos de colunas na linha 1.

Osvaldo

 
Postado : 25/01/2018 10:40 am
(@shroeder)
Posts: 57
Trusted Member
Topic starter
 

Funcionou.

Obrigado pela ajuda.

Resolvido.

Cumprimentos,

 
Postado : 25/01/2018 11:55 am