Página 1 de 1

Macro para somar com criterios

Enviado: 13 Fev 2020 às 10:46
por Diego100ges
Prezados, bom dia.
Gostaria de ajuda para o seguinte, possuo algumas planilhas com muitas linhas, onde um cliente tem lojas diferentes, e tenho dados horarios de cada loja de cada dia, vão de 0 a 23, gostaria de somar por exemplo, o valor de todas as lojas na hora 1 do dia 01/01/2019.
Então gostaria que a macro fizesse isso, na coluna A tenho o cliente, na B tenho as Lojas, na C a data, na E a hora e na D o valor.
Então, somar todos as lojas do mesmo cliente, no mesmo dia e hora, no final eu teria apenas 1 valor cheio para cada hora de cada dia.

Segue planilha exemplo.

Macro para somar com criterios

Enviado: 13 Fev 2020 às 12:42
por eduardogrigull
No seu exemplo existem apenas um registro por hora/dia. Entao pela sua lógica, já está tudo correto... Ou foi explicado algo errado?

Re: Macro para somar com criterios

Enviado: 13 Fev 2020 às 14:03
por Diego100ges
Acho que não deixei muito claro na explicação;
Na planilha anexa eu tenho varias lojas de 1 mesmo cliente, porém eu quero saber o valor total de cada hora em cada dia, de todas as lojas (soma).
Então no resultado que eu quero são 8760 Linhas, (24 horas * 365 dias)

O resultado de todas as lojas na hora 1 do dia x
o resultado de todas as lojas na hora 2 do dia x

E assim sucessivamente.

É possível fazer em tabela dinâmica, porem eu necessito de uma macro pra soma, pois irei trabalhar os dados em outro formato, e não quero ter que fazer a dinâmica sempre que tiver novos dados.

Re: Macro para somar com criterios

Enviado: 14 Fev 2020 às 16:15
por Diego100ges
Alguma ideia de como fazer?

Re: Macro para somar com criterios

Enviado: 16 Fev 2020 às 18:58
por topscore
Olá Diego100ges:

Não entendi por que você precisa de macros, basta usar "Somases". Criei uma nova aba Relatório, 8760 linhas na tabela, fazendo exatamente o que você pediu.
*Célula A4, mude a data para 01/01/2020 se quiser passar para esse ano.
*Célula D4, mude a fórmula para fazer outros clientes. Se tiver outras abas como a que você mandou, com outros clientes, abra novas abas, copie/cole todo relatório, na D4 substitua "Clientes1" pelo nome da aba onde está seu próximo cliente, arraste para baixo.

Resolva o tópico se estiver resolvido.
https://www.dropbox.com/scl/fi/gkhpiznt ... l0sc7oqr4y

Re: Macro para somar com criterios

Enviado: 17 Fev 2020 às 14:21
por Diego100ges
topscore, obrigado pelo seu tempo, porém realmente preciso disso em VBA, vou trabalhar com próximo a 1 milhão de linhas, e quero evitar formulas para não pesar a planilha.

Eu montei uma versão de VBA que até funciona, porém acho que está engessada demais, se alguém conseguir dar uma olhada no código e ver se da pra melhorar alguma coisa fico grato!

No código atual eu chamo uma inputbox pra informar o nome do cliente que quero somar, e outra para dizer em qual coluna eu quero o resultado, seria ótimo se o código já entendesse sozinho quando é um cliente diferente e já desse o resultado em outra coluna, sem eu precisar ficar informando esses dados.

Segue anexo.

Obrigado!

Re: Macro para somar com criterios

Enviado: 18 Fev 2020 às 15:17
por topscore
Diego100ges

Não sei como implementar seu código, não tenho essa manha toda. Todo caso, segue uma planilha que deve resolver seu problema ( se você mantém seus clientes em abas separadas, cada uma com aquela tabela que você mandou).
Repare que você deve cadastrar todos clientes (Cadastro) e o nome resumido é exatamente igual ao da aba.
Na aba relatório, não inclua nem exclua linhas e colunas, cada célula deve ficar exatamente onde está. Mas pode ocultar e formatar.

Arquivo muito grande, usei o dropbox:

https://www.dropbox.com/scl/fi/r53enuvl ... 6x7zt89xvx

Re: Macro para somar com criterios

Enviado: 18 Fev 2020 às 16:02
por topscore
Outra coisa Diego100ges

Sempre que ele gera o relatório, no final ele deixa os cálculos manuais. Isso vai afetar seus outros arquivos. Vá em Arquivo, Opções, Fórmulas para deixar automático, até você gerar outro relatório. Ou coloque um botão e manre rodar a macro "Auto" (já existe).
Quando se trabalha com tabelas desse tamanho, rodar códigos no modo automático demora muito tempo, às vezes minutos, por isso faço manual e aperto F9 quando preciso.