Digitar em decimal ...
 
Notifications
Clear all

Digitar em decimal e mostrar em minutos.

38 Posts
2 Usuários
0 Reactions
7,522 Visualizações
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Boa tarde!

Meu nome é Pedro.

Tenho uma planilha de controle de horários utilizada a muito tempo aqui no escritório, eu nunca havia operado nela, agora estou operando.

Eu quero otimizar a digitação... Do jeito que esta se eu quiser digitar "seis hora e trinta minutos", eu preciso digitar: 06:30.
Quero digitar os números com virgula, por exemplo, "seis horas e trinta minutos"; Eu quero digitar somente "6,30", mas quero que apareça na célula "06:30".

Alguém sabe como posso fazer isto?

Desde já, muito obrigado!

 
Postado : 10/05/2012 2:05 pm
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Informações adicionais.

A minha planilha ja esta calculando perfeitamente o limite interjornada, vide por exemplo o dia 19/07/2006, 20/07/2006 e 21/07/2006.
a formula esta calculando corretamente o limite interjornada.

O problema aqui é a forma de digitar muito ruim, tendo que digitar as hora ":" e os minutos...

Eu quero digitar "6,30", e quero que na célula apareça "06:30", e quero que a formula que calcula o limite interjornada permaneça funcionando.

MUITO OBRIGADO A QUEM SOLUCIONAR ESTE PROBLEMA!

 
Postado : 10/05/2012 2:22 pm
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Tem outro desafio.

Além de querer digitar o numero com virgulas e o exibí-lo em minutos, eu gostaria que a planilha reconhecesse o horário "24:00", quando eu digito este horário converte automaticamente para "00:00"...

O sistema tem que considerar "24:00", senão a fórmula das horas interjornadas não funciona.

Estou tentando freneticamente resolver estas trÊs questões, se eu conseguir vou postar a solução.

Mas isto esta avançado demais para as minhas capacidades. Obrigado a quem estiver tentando ajudar.

 
Postado : 10/05/2012 2:48 pm
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Problema com os horário "24:00".

Resta uma nova situação problematica, quando o empregado não fizer as 5 escalas, ou seja, se ele fizer somente três, a formula tem que ser inteligente para identificar a ultima escala dele, e calcular pela última escala...

Mas não sei como expressar no excel "SE([célula]<>0;[formula desejada];SE([outra célula]<>0;[formula desejada]....

Segue anexo a ultima versão da planilha....

 
Postado : 10/05/2012 3:42 pm
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Lembrando me restam 2 problemas:

1 - O da formula para quando o empregado não fizer as 5 escalas.
2 - E a questão de digitar o numero com virgula e fazer o excel entender em minutos.

Vou tentar hoje novamente, e uma vez que outra venho conferir aqui se alguém respondeu.

 
Postado : 11/05/2012 5:02 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia! Pedro,

Eu tenho a solução para o primeiro tópico com auxílio de macro.
Gostaria de saber, se lhe atende?

A minha sugestão não precisará digitar os "," virgula e nem ":" dois pontos.

Fico no aguardo!

 
Postado : 11/05/2012 5:16 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Bom dia!

Glaydistone, aceito sua sugestão, mas eu nunca trabalhei com macros, poderia me ensinar?

Se tornar mais prático a digitação, vai facilitar muito minha vida, vocÊ viu o tamanho do período de cartão ponto que eu tenho que digitar?
Esse é um dos menores períodos que eu tenho aqui pra digitar.

 
Postado : 11/05/2012 5:49 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pedro,

Observe que o arquivo está anexado (compactado).
Eu coloquei a macro na planilha, faça um teste por favor.

Lembre-se que não precisa digitar a virgula "," ou dois pontos ":"

Despois vc pode visualizar o código, clicando as teclas ALT + F11 (PARA ENTRAR NA ESTRUTURA) e para sair da mesma ESTRUTURA clique em ALT + Q

Segue o código abaixo: (apenas para compartilhar com os demais).

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim TimeStr As String
On Error GoTo EndMacro
If Application.Intersect(Target, Range("C5:L799")) Is Nothing Then
Exit Sub
End If
If Target.Cells.Count > 1 Then
Exit Sub
End If
If Target.Value = "" Then
Exit Sub
End If
Application.EnableEvents = False
With Target
If .HasFormula = False Then
Select Case Len(.Value)
Case 1 ' e.g., 1 = 00:01 AM
TimeStr = "00:0" & .Value
Case 2 ' e.g., 12 = 00:12 AM
TimeStr = "00:" & .Value
Case 3 ' e.g., 735 = 7:35 AM
TimeStr = Left(.Value, 1) & ":" & _
Right(.Value, 2)
Case 4 ' e.g., 1234 = 12:34
TimeStr = Left(.Value, 2) & ":" & _
Right(.Value, 2)
Case 5 ' e.g., 12345 = 1:23:45 NOT 12:03:45
TimeStr = Left(.Value, 1) & ":" & _
Mid(.Value, 2, 2) & ":" & Right(.Value, 2)
Case 6 ' e.g., 123456 = 12:34:56
TimeStr = Left(.Value, 2) & ":" & _
Mid(.Value, 3, 2) & ":" & Right(.Value, 2)
Case Else
Err.Raise 0
End Select
.Value = TimeValue(TimeStr)
End If
End With
Application.EnableEvents = True
Exit Sub
EndMacro:
MsgBox "A hora digitada não é válida"
Application.EnableEvents = True
End Sub

 
Postado : 11/05/2012 6:06 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Glaydistone, o código funciona, eu digito "0630" e quando aperto enter ele mostra "06:30", beleza.

O código fica aplicado à toda planilha automaticamente né?

Ele fica aplicado às outras abas também?

Poderia me dizer um passo a passo como criar esta macro e como exclui-la se eu quiser?
(o código em si, eu mais ou menos entendi, pois tenho conhecimentos básicos em programação, só não sei utilizar dentro do excel)

Até aqui muito obrigado!

Agora tenho que resolver o problema da formula, que não esta funcionando quando o empregado não faz as 5 escalas.
Por favor, você também sabe como corrigir ela?

 
Postado : 11/05/2012 6:27 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Cara, agora que vi, o horário "2400" que deveria ser "24:00", "Não é um horário válido".

Eu vou precisar digitar a hora "24:00"... Não está aceitando com esse código.

Acho que a solução seria colocar mais um "case" ali no código, mas eu não sei programar...

 
Postado : 11/05/2012 6:31 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Caso algém esteja acompanhando o tópico e tentando ajudar, atualmente ainda estou com duas pendências:

1) A formula ainda não funciona se o empregado não fizer todas as jornadas....
Não consegui resolver.
Estou precisando resolver esta formula.

2) A dica do Glaydistone resolve a questão da digitação, mas não reconhece o horário "24:00".
Então é preferível digitar da forma problematica para poder digitar o horário "24:00".
Estou precisando algo semelhante ao código do Glaydistone, mas tem que saber identificar o horário "24:00".

Em anexo coloquei as duas planilhas,
a minha onde o horário 24:00 funciona, mas a digitação é problematica,
e a do Glaydistone onde a digitação é simples como eu havia pedido, mas não reconhece o horário 24:00.

Tanto em uma quanto na outra, o problema 1 persiste, ou seja, a formula não funciona.

Então ainda espero por ajuda, pois meus conhecimento se limitam até onde fui, vide a planilha que criei.

Obrigado.

 
Postado : 15/05/2012 8:57 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pergunta:
Qual o critério para o calculo das "Horas Extras Interjornadas"; não entendi pois a formula em N5 "olha" os valores em L4;J4;F4, ou seja na linha anterior??
=SE(L4<>0;Q5-C5+R5-L4;SE(J4<>0;Q5-C5+R5-J4;SE(H4<>0;Q5-C5+R5-H4;SE(F4<>0;Q5-C5+R5-F4;SE(D4<>0;Q5-C5+R5-D4;0)))))

 
Postado : 15/05/2012 10:31 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Reinaldo é o seguinte, existem 11 hora de repouso obrigatório entre um dia e o dia seguinte de trabalho.

Vemos neste caso que a pessoa que marca o horário, sai por volta da meia noite e volta a trabalhar por volta das 4 horas da madrugada, ou seja, não cumpre com o descanso obrigatório de onze horas.

Então a pergunta que a formula tem que responder é: "Entre o ultimo horário de ontem, e o primeiro horário de hoje, quantas horas a menos do que 11 ele descansou?"

Eu bolei a seguinte lógica: [(11 - o primeiro horário de hoje) + (24 - o ultimo horário de ontem)]
Até aqui tranquilo, a fórmula funcionou se o empregado trabalhar os 5 turnos.

Mas, as vezes o empregado faz apenas 3 ou 4 turnos.
E nestes casos a formula não funcionou.

O caso é complicado, mas desde já, obrigado por tentar ajudar.

 
Postado : 15/05/2012 2:14 pm
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Reinaldo, se não fosse a sua pergunta eu não teria percebido um erro, minha formula estava errada.

A formula nova é a seguinte: (11 - ((24-ultimo horário de ontem)+primeiro horário de hoje)
Que significa: [total que deveria ter sido descansado - (descansado ontem + descansado hoje)] = quantidade de descanso que faltou

Mesmo assim, mudei a formula em toda a coluna e ela continua a não funcionar se o empregado não fizer todas as 5 jornadas...

 
Postado : 15/05/2012 2:38 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pedro, veja no anexo se lhe atende;
alterei a rotina (código) para aceitar 24:00
na coluna S, como ficaria utilizando o modo de calculo conforme sua formula.
Na coluna T, sugstão de formula considerando dia+hora.

 
Postado : 15/05/2012 5:59 pm
Página 1 / 3