Notifications
Clear all

Contar dias seguidos trabalhados e mudar a cor de fundo

7 Posts
2 Usuários
0 Reactions
1,433 Visualizações
(@dracko2007)
Posts: 12
Active Member
Topic starter
 

Olá amigos, vejo vocês sempre ajudando o pessoal, então gostaria de uma pequena ajuda em uma coisa muito complexa, tenho um arquivo onde tem mais de 1000 colunas, cada coluna existe 1 nome diferente, e desde a linha 10 até a linha 40 mais ou menos existe um valor digitado.

Na coluna A, vai a semana então A10 é segunda A11 terça e assim por diante, no A17 seria segunda novamente, caso o dia 1 do mês seja segunda.

Mas o que gostaria que a macro, busque desde o primeiro dia, até o ultimo dia trabalhado da pessoa, e conta-se quantos dias seguidos ela trabalhou, exemplo:

trabalhou direto do dia 2 ao dia 8 então no dia 7 ele colocasse a cor de fundo de amarelo, e o 8 dia em vermelho, só que o 9 dia teria um intervalo, exemplo dia 9, 10 e 11 fosse folga, e voltasse dia 13, ele contasse novamente se tem mais de 6 dias seguidos trabalhados, se tiver ele pinte de amarelo o 7 dia, e vermelho os dias excedentes, caso não haja nenhum dia excedente ele não mude nada e continue contando até o final do ultimo dia do mês.

na coluna C, D, E em diante a mesma coisa, pegue desde o primeiro dia da pessoa e conte até o dia que não tem dado nenhum, se tiver mais de 7 pinte de amarelo, e tudo que for mais de 7 pinte de vermelho, até o próximo dia da folga, depois da folga os dados voltam e ele continua contando .

Exeplo, o Jonas trabalhou 11 dias seguidos começando na primeira semana, (A semana em si não tem muita importancia, pode mudar pra dia 1, 2, 3 pra ficar mais facil) então, o dia 7 seria cor de fundo amarelo 8,9,10,11 cor de fundo vermelho. Depois disso o Jonas não trabalhou mais de 7 dias seguidos então não há mais o que mudar, o Silva trabalhou a primeira semana normal, e na segunda semana 7 dias, então o macro teria que identificar desdo o primeiro dia, quais tem mais ou menos de 7 e pintar o correspondente.
Exemplo do Carlos, ele trabalha 8 dias na primeira semana, então 7 amarelo, e 8 vermelho, folga 3 dias, trabalha mais 2 dias e folga 2 dias, trabalha outros 7 dias seguidos, então a macro identificaria quais teria mais de 7 e pintando os correspondentes também.
Será que é possivel fazer essa proeza ? desde já agradeço a ajuda amigo.

 
Postado : 25/04/2017 10:41 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa noite,

Coloque uma planilha de exemplo, não precisa ser o original com as 1000 colunas, mas que o arquivo tenha a mesma estrutura.

Sobre pintar as células, recomendo ler: viewtopic.php?f=28&t=8862

att,

 
Postado : 26/04/2017 4:16 pm
(@dracko2007)
Posts: 12
Active Member
Topic starter
 

Ola Brunoxro, tudo bem ? obrigado por responder
https://www.sendspace.com/file/uq8m3i nesse link consta o arquivo e uma pequena explicação.

se for apenas uma coluna eu consigo fazer uma macro pra contar e pintar como eu quero, o problema é que são mais de 1000, ai eu não tenho experiencia suficiente pra isso, interessante o artigo que vc citou acima, é bom sempre aprender algo a mais.

obrigado pela ajuda desde já

 
Postado : 26/04/2017 5:02 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa noite,

Vamos ver se entendi. Cada coluna representa um trabalhador, se a célula estiver vazia (exemplo: C9) significa que ele não foi para o trabalho. Se a contagem na coluna der 5 células ocupadas em sequência, pinta ela de amarelo, se a sexta estiver ocupada também, pinta de laranja, a partir dai pinta de vermelho até aparecer uma célula vazia na sequência da coluna. Depois seguir esse processo até a última célula não vazia. Partir para a coluna do lado e fazer tudo de novo...

Eu mandei o link porque se você pintar, seu arquivo ficará grande e talvez atrapalhe o seu trabalho. Além disso, não imagino alguém conferindo 1000 colunas no olho para ver se estão pintadas ou não. Não é mais prático para o seu trabalho ao invés de pintar, montar direto o relatório dos que compareceram, não compareceram etc?

att,

 
Postado : 26/04/2017 5:23 pm
(@dracko2007)
Posts: 12
Active Member
Topic starter
 

Então Bruno, é exatamente isso que você entendeu que eu quero, acontece que nem todos trabalham o mesmo dia, mas por exemplo se 450 vir no mesmo dia, teria que procurar o ID ou NOME da pessoa, e digitar manualmente o valor, então a empresa fez um sistema de cartão magnetico, onde a pessoa aciona o cartão e registra automaticamente o dia que ela veio, isso é transferido para o excel, porem de uma outra forma, ai eu fiz uma macro onde ele puxa os dados colhidos pelo arquivo que o sistema faz, procura cada pessoa correspondente e marca se ela veio ou não.

Só que por regra a empresa não permite trabalhar mais que 6 dias consecutivos, ai o 5 dia tem que ser amarelo para ja ficar em alerta, 6 dia para indicar que ja ta no limite, e 7 em diante em vermelho para indicar que ela excedeu tudo, como são mais de 1000 pessoas fica dificil conferir quem realmente veio, e a partir de que horas ela veio, pois nem todos entram no mesmo horario também.

a cor mostraria exatamente isso por que fica mais facil achar quem está ou não excedendo os dias trabalhados.

abaixo dessa tabela ainda tem outros itens, entre outra e outras coisas, por isso não tem como mudar o arquivo.

att,

 
Postado : 26/04/2017 7:01 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde,

De uma olha nos códigos que coloquei na planilha em anexo.

No módulo1 tem o código que faz o que você pediu. Recomendo não rodar ele na sua base principal e sim copiar os dados para uma outra planilha, trazer colocar o módulo para lá e rodar. Assim se a planilha ficar muito pesada não vai atrapalhar outros trabalhos.

No módulo2 coloquei uma macro que lista os códigos dos trabalhadores a partir de um determinado dia. Por exemplo: se você rodar ele e colocar o dia '33' no inputbox, o código via listar na planilha 'Lista' quem até aquele dia está com 5 dias, 6 dias ou 7 dias. Fazer algo similar a isso acho mais prático do que ficar olhando cores numa planilha.

Teste e dê retorno.

att,

 
Postado : 27/04/2017 11:53 am
(@dracko2007)
Posts: 12
Active Member
Topic starter
 

Boa tarde

Cara você é o cara, ficou perfeitamente do jeito que eu queria, fiz todos os testes e não houve 1 único erro.
fiquei impressionado com o código, realmente tenho que estudar horrores, obrigado mesmo por ter me ajudado vai facilitar muito meu trabalho.

nem sei como agradecer, bom mais uma vez obrigado pela rapidez em resolver meu problema, fico feliz que tenha pessoas como você disposta a ajudar outras pessoas.

tenha um bom dia, obrigado mais uma vez

att

 
Postado : 27/04/2017 12:30 pm