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!
Sds. Pedro Júnior
AÊÊÊÊÊ!!!!!!!
MUITO OBRIGADO....
PRIMEIRA ETAPA CONCLUÍDA...
Ficou assim ó:
A lógica esta na célula X:
=SE(OU(C4="";C5="");"";TEXTO(SE(U5-(V5-MÁXIMO(C4:L4)+C5)<0;U5;0)+ABS(U5-(V5-MÁXIMO(C4:L4)+C5));"hh:mm;;"))
A célula W ajusta se o valor for maior que 11 ou igual a 0:
=SE(SE(X5<0;"";X5)>"11:00";"";SE(SE(X5<0;"";X5)="00:00";"";SE(X5<0;"";X5)))
E, a célula N mostra em decimal:
=SE(W5<>"";(W5-INT(W5))*24;"")
...
Agora... No início eu estava abordando dois problemas, uma era a formula e outro a forma de digitar...
Abandonei a questão da forma de digitar porque não estavamos conseguindo conciliar as duas coisas.
Então vocês me ajudaram a resolver o problema da formula.
O resultado é um sistema de controle de cartão ponto para até 5 escalas de serviço por dia.
Não é coisa pouca, esta planilha é uma raridade no brasil, quem trabalha em escritorio de contabilidade ou departamento pessoal de firmas grandes deve ter se dado conta de que isso que vocês me ajudaram a construir é uma baita ferramenta para esses departamentos trabalharem.
...
Eu quero aprimorar essa planilha, tentando novamente resolver o problema da digitação.
Da forma atual eu sempre preciso digitar "hh:mm", para mostrar um horário na célula.
Existe alguma forma de digitar o número sem os ":", por exemplo:
Digitar "0630" na célula C7 e quando eu der [enter] ela converter para "06:30", automaticamente?
ATENÇÃO, o Glaydistone ofereceu este código:
Re: Digitar em decimal e mostrar em minutos.
Mensagempor Glaydistone » 11 Mai 2012, 09:06
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
Que funcinou quase sempre, EXCETO para o horário "2400" que deveria converter para "24:00", e no código dele convertia para "00:01".
EM ANEXO EU COLOQUEI A PLANILHA COM O RESULTADO PARCIAL, FUNCIONANDO PERFEITAMENTE, E COM UMA EXPLICAÇÃOSINHA DE COMO USÁ-LA.
Agora vocês poderiam me ajudar a adaptar o código dele, para reconhecer o horário "2400" como "24:00" ????
Sds. Pedro Júnior
Expermentou o codigo que esta em minha postagem do dia 15? Pelos teste que fiz resolve sua duvida
(teste no arquivo anexoà postasgem do dia 15 maio) O codigo e o abaixo:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim HoraDigitada As String Dim HoraFormatada As String Dim Tamanho As Integer Dim Retorno Dim Endereço If Target.HasFormula Then Exit Sub End If If IsNumeric(Target.Value) = False Then Exit Sub End If On Error Resume Next Application.EnableEvents = False HoraDigitada = Target.Value Tamanho = Len(HoraDigitada) If Tamanho = 1 Then HoraDigitada = "000" & HoraDigitada ElseIf Tamanho = 2 Then HoraDigitada = "00" & HoraDigitada End If HoraFormatada = Left(HoraDigitada, Len(HoraDigitada) - 2) & ":" & Right(HoraDigitada, 2) Target = HoraFormatada Application.EnableEvents = True On Error GoTo 0 End Sub
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Trabalho em contabilidade no DP.
http://planilhando.com.br/index.php?opt ... &Itemid=18
Essa planilha ajuda, mas é muito simples
Tente com essa:
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 TimeStr = "00:0" & .Value Case 2 TimeStr = "00:" & .Value Case 3 TimeStr = Left(.Value, 1) & ":" & Right(.Value, 2) Case 4 TimeStr = Left(.Value, 2) & ":" & Right(.Value, 2) Case 5 TimeStr = Left(.Value, 3) & ":" & Mid(.Value, 3, 2) Case 6 TimeStr = Left(.Value, 4) & ":" & Mid(.Value, 4, 2) Case Else Err.Raise 0 End Select .Value = TimeStr End If End With Application.EnableEvents = True Exit Sub EndMacro: MsgBox "Digite a hora sem os pontos" Application.EnableEvents = True End Sub
Coloca em "Plan1"
[EDIT]Postamos juntos Reinaldo[/EDIT]
Qualquer coisa da o grito.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
AÊÊÊÊ!!!!!!
Os dois códigos funcionam perfeitamente...
Ainda não entendo de códigos não sei a diferença entre o do Reinaldo e o do Bernardo.
Mas funcionou gente.
Em anexo as duas, funcionando....
____________________________________________
Respondendo ao Bernardo.
Esta planilha não é tão simples quanto parece, (não pra mim, nunca fiz nenhum curso de excel, eu to aprendendo devargar por mim mesmo, então algumas coisas me parecem bem avançadas, que pra vocês talvez seja só o dia a dia), na verdade a coluna de horas mais complicada de calcular ja está pronta, (eu considero mais complicada porque envolvia o dia anterior), é só mais uns cliques e uns puxa pra cá e pra lá, e temos um sistema analítico de horas trabalhadas que pode demonstrar tudo, horas extras até 2, acima de 2, horas noturnas até 2, noturnas acima de 2, extras em domingo e feriados...
Sei lá, é só ir acrescentando.
Vou desenvolver mais coisas em cima dela e periodicamente vou postando aqui o resultado.
O objetivo da planilha é ser um sistema de levantamento analítico de horas trabalhadas colaborativo.
Futuramente isso pode até ter uam licença FSF ou CC... Sei lá...
Ou talvez eu esteja só viajando não sei também XD
Certamente vou desenvolver mais coisas pra ela.
Sds. Pedro Júnior
Tá tranquilo Pedro...
Também nunca fiz nenhum curso de Excel nem de programação nem nada relacionado a informática, aprendi por gostar e de curiosidade... sou contabilista... pode não estar simples ao seu ver como você mensionou do seu caso... infelizmente não quis te desapontar mas realmente está muito simples...
Tudo vai depender da necessidade da planilha... é muuuuito útil a você... mas se alguém pegar para usa-la sempre vai ter alguma coisa para modificar... por isso nunca tenho nada pronto... apesar da complexidade das planilhas que uso.... estou sempre modificando-as...
Segue um reajuste no layout da planilha.
Se precisar mexer em fórmulas/layout (não sou muito bom com layout, funcionando e fazendo os cálculos corretos está bom, mas pelo menos uma boa apresentação é essencial).
Qualquer coisa da o grito.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
haha, eu tava colorindo ela também, e também coloquei o dia da semana... tava bem parecido... XD
Bernardo valeu pela ajuda até qui.
Provavelmente vou pedir ajuda de novo XD
Sds. Pedro Júnior
Mas, nossa, eu tava vendo agora, foi muito rapido...
Você deve saber mais coisa que eu... Você não selecionou cada sabado e domingo pra pintar de azul selecionou? como você fez tão rapido?
Eu tava fazendo manualmente, tava em menos da metade... OO
Sds. Pedro Júnior
O anexo que enviei, pode excluir as colunas "R" e "S"
Qualquer coisa da o grito.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel