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.
Por victor2
Posts
#68322
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!
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#68323
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.
Por victor2
Posts
#68328
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.
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#68333
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 todos
Sub 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
Por victor2
Posts
#68364
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!.
Por osvaldomp
#68365
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.
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