Página 1 de 1
Juntas linhas usando loop
Enviado: 16 Dez 2021 às 09:55
por victor2
Olá senhores. Tudo bem?
Se possível, gostaria de uma ajuda. Tenho tentado criar uma macro com o objetivo de juntar algumas linhas e resumir os critérios em uma linha só. Por ex: tenho casos que um mesmo critério possui 3 variáveis diferentes para realizar a somatória e gostaria de abri-los em linhas para facilitar a tabela dinâmica.
Anexei um modelo de como deveria ficar. Não inseri a macro porque ficou um pouco ruim...e preferi ver se alguém teria uma solução melhor.
Desde já agradeço!
Re: Juntas linhas usando loop
Enviado: 16 Dez 2021 às 18:31
por osvaldomp
Olá,
@victor2 .
#
victor2 escreveu: ↑16 Dez 2021 às 09:55
... juntar algumas linhas e resumir os critérios em uma linha só.
O que exatamente você chama de "critérios" ?
Por ex: tenho casos que um mesmo critério possui 3 variáveis diferentes ...
O que exatamente você chama de "variáveis"?
... para realizar a somatória e gostaria de abri-los em linhas para facilitar a tabela dinâmica.
Informe em qual coluna/célula você quer a soma e informe também o que você quer somar.
Anexei um modelo de como deveria ficar.
Suponho que na Planilha1 é que você colocou o resultado desejado, é isso?
Se sim, explique como você obteve os dados que colocou em cada linha e em cada coluna.
Re: Juntas linhas usando loop
Enviado: 17 Dez 2021 às 10:23
por victor2
Olá, Osvaldo, tudo bem?
Obrigado por responder.
Eu inseri outro exemplo explicando melhor.
Atualmente eu utilizo a 'planilha1' para montar tabelas dinâmicas tipo a aba'atual', porém, minha intenção é realizar filtros na aba 'planilha' um para outra aba para que seja possível montar tabelas como na 'modelo' e assim facilitar a dinâmica que criei na aba 'ideia'
Algumas atividades possuem 3 tipos de produtos, divididos nas colunas O,R e U. e seus resultados nas colunas AA, AB e AC
O que eu fiz na aba 'modelo', foi listar ele. Se antes estava
AREA Atividade Produto_1 Produto _2 e produto _3 QTD_1 QTD_2 QTD_3
10 X y z w 2 3 4
eu transformei em:
Area atividade Produto QTD
10 x y 2
10 x z 3
10 x w 4
Ou seja, eu juntei as colunas em apenas uma para que meu filtro fique mais simples como na tabela dinâmica da aba 'ideia'. Se fosse possível, não repetir a 'area' como mostrado em cima, pois triplicamos o valor, mas caso não de certo, tudo bem...
Tem casos como esse com 3 produtos, casos com 2 e 1 e algumas vezes 4, no máximo.
Re: Juntas linhas usando loop
Enviado: 18 Dez 2021 às 11:00
por osvaldomp
Olá,
@victor2 .
Experimente o código abaixo.
Antes de testar limpe a planilha
Modelo a partir da linha 2, mantenha somente os cabeçalhos em
A1:N1.
#
Código: Selecionar todosSub MudaDispoDados()
Dim C As Range, k As Long, LR As Long, v As Long, x As Long, h As Long
Application.ScreenUpdating = False
For Each C In Sheets("Planilha1").Range("A2:A" & Sheets("Planilha1").Cells(Rows.Count, 1).End(3).Row)
k = Application.CountA(C.Offset(, 15), C.Offset(, 18), C.Offset(, 21))
With Sheets("Modelo")
LR = .Cells(Rows.Count, 1).End(3).Row
.Cells(LR + 1, 1).Resize(k, 7).Value = C.Resize(, 7).Value
.Cells(LR + 1, 8).Resize(k).Value = C.Offset(, 11).Value
.Cells(LR + 1, 9).Resize(k).Value = C.Offset(, 12).Value
.Cells(LR + 1, 14).Resize(k).Value = C.Offset(, 35).Value
For x = 14 To 20 Step 3
If C.Offset(, x) <> "" Then
.Cells(LR + 1 + v, 10).Resize(, 3).Value = C.Offset(, x).Resize(, 3).Value
.Cells(LR + 1 + v, 13) = C.Offset(, 26 + h).Value
v = v + 1
End If
h = h + 1
Next x
End With
v = 0: h = 0
Next C
End Sub
Re: Juntas linhas usando loop
Enviado: 20 Dez 2021 às 22:44
por victor2
Olá,@osvaldomp
O código deu muito certo, obrigado.
Surgiu apenas mais uma dúvida. eu tentei fazer um teste caso haja mais colunas, e o (C.Offset(, 15) chega no máximo a 18, caso a coluna seja mais longe do que isso, ele não pega. Sabe dizer porque? De qualquer forma, Obrigado!.
Re: Juntas linhas usando loop
Enviado: 21 Dez 2021 às 07:06
por osvaldomp
victor2 escreveu: ↑20 Dez 2021 às 22:44
... eu tentei fazer um teste caso haja mais colunas, ...
Sabe dizer porque?
Sei, sim. É porque a solução que passei serve para a planilha que você disponibilizou e você tentou aplicar em planilha com estrutura diferente. Macro não é colete salva-vidas, que se adapta a qualquer situação.
Disponibilize o outro arquivo com a solução desejada.