Ir ao conteúdo
  • Cadastre-se
Osmarbg

Horas noturnas

Recommended Posts

Bom dia amigos, mais uma vez venho pedir o auxilio de vocês.

Tenho esta planilha (anexa), ela calcula tudo direitinho, apenas a coluna de adicional noturno que ainda não tem fórmula.

Na aba premissas nas colunas C14 e D14 temos o horário noturno que compreende entre 22:00 h até 05:00 horas.

Na aba Geciara na coluna 0, tenho o adicional noturno.

o que preciso é que ao preencher as colunas D,E,FeG seja calculado automáticamente as horas noturnas na coluna O.

Exemplo.

Entrada 20:30 saída para refeição 01:00 entrada da refeição 02:00 saída 06:48 neste caso na coluna -  O deve mostrar o n° de horas noturnas ou seja 07:00

Planilha anexa.

Controle de cartão de ponto Goldenpark ADM Golden.xlsx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Osmarbg,

 

ainda q não resolvendo seu problema principal, alterei duas fórmulas da sua planilha q considero q melhoram a rapidez do cálculo.

Na tabela q você denominou ESPELHO (Y7:AB37) alterei a parte q lidava com o tempo como texto.

=SE(OU(D8="";D8=0;D8="FALTA";D8="SUSPENSO";D8="SUSPENSÃO");"";TEMPO(INT(D8/100);DIREITA(D8;2);0))

 

Assim as fórmulas da coluna I da aba Geciara ficaram mais enxutas agilizando o cálculo.

=SE(ÉERROS(SE(OU($Z8="";$Z8=0);0;(SE($Z8<$Y8;(1-$Y8+$Z8);$Z8-$Y8))+SE(OU($AB8="";$AB8=0);0;(SE($AB8<$AA8;(1-$AA8+$AB8);$AB8-$AA8)))));0;SE(OU($Z8="";$Z8=0);0;(SE($Z8<$Y8;(1-$Y8+$Z8);$Z8-$Y8))+SE(OU($AB8="";$AB8=0);0;(SE($AB8<$AA8;(1-$AA8+$AB8);$AB8-$AA8)))))

Controle de cartão de ponto Goldenpark ADM Golden.xlsx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia DJunqueira, agradeço, pelas alterações enrriquecem o trabalho.

Mas ainda assim continuo precisando da fórmula que me dê o nº de horas para adicional noturno.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Osmarbg

 

Eu já ajudei várias vezes em formula para cálculo de Adicional Noturno, mas em planilha normal, onde as horas digitadas, eram realmente horas, e não apenas números com mascara de hora.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, Osmarbg disse:

Não tem jeito então?

 

 

Você optou for formatar as células para exibir números com "aparência" de horas, provavelmente para evitar a digitação dos dois pontos. Com essa solução, ao digitar 2030, na célula será exibido 20:30, no entanto o conteúdo da célula será o número 2030 e não 20h30. Essa solução não permite utilizar os valores diretamente nas fórmulas, então surgem as fórmulas gambiarras para contornar a situação.

A solução tecnicamente recomendável é transformar o número em horas via macro. Se quiser experimentar instale o código abaixo no módulo da planilha de interesse; antes formate o intervalo para Geral. O código irá atuar no intervalo "D7:G37", altere se necessário.

Depois disponibilize o arquivo que o Mestre Patropi desenvolve as fórmulas pra você.


 

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Range("D7:G37")) Is Nothing Then Exit Sub
 On Error Resume Next
 Application.EnableEvents = False
 Target.Value = Left(Target.Value, Len(Target.Value) - 2) & ":" & Right(Target.Value, 2)
 Application.EnableEvents = True
End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Osmarbg  Abri o seu arquivo e notei uma falha no código que passei. Assim, nos casos de se digitar apenas os minutos, sem as horas, o código retorna resultado incorreto.

Segue abaixo o código corrigido. Quem for desenvolver as fórmulas poderá colocá-lo no lugar do anterior. Para inserir 00:06 digite apenas 6, para inserir 00:42 digite 42, para inserir 08:25 digite 825, para inserir 18:09 digite 1809.

Outro ponto que notei na Validação de Dados que você aplicou ao intervalo o máximo valor admitido pela Validação é 2459. Esse horário 24h59 não existe para o Excel. O máximo permitido deve ser 2359 depois desse valor o Excel volta a 00:00 e não 24:00.

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Range("D7:G37")) Is Nothing Then Exit Sub
 On Error Resume Next
 Application.EnableEvents = False
 If Len(Target.Value) = 1 Then
  Target.Value = "00:0" & Target.Value
 ElseIf Len(Target.Value) = 2 Then
  Target.Value = "00:" & Target.Value
 Else: Target.Value = Left(Target.Value, Len(Target.Value) - 2) & ":" & Right(Target.Value, 2)
 End If
 Application.EnableEvents = True
End Sub

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok Osmarbg, aí está uma planilha com tudo q você pediu.

Entrada como número p/ hora com validação checando se o número entrado é uma hora válida e cálculo da hora noturna descontando a parada p/ jantar.

 

Experiência interessante, nunca tinha feito uma dessas.

Controle de cartão de ponto Goldenpark ADM Golden.xlsx

Compartilhar este post


Link para o post
Compartilhar em outros sites

DJunqueira, bom dia.

Muito obrigado, era exatamente isso que precisava, agora esta tudo funcionando.

Agradeço a você e aos outros que me ajudaram, não apenas neste tópico mas em todas as postagens que fiz e nunca fiquei sem solução para os meus problemas.

Um ótimo dia a todos.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×