Digitar em decimal ...
 
Notifications
Clear all

Digitar em decimal e mostrar em minutos.

38 Posts
2 Usuários
0 Reactions
7,524 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
 

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" ????

 
Postado : 18/05/2012 7:43 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

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
 
Postado : 18/05/2012 8:49 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

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.

 
Postado : 18/05/2012 8:50 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

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.

 
Postado : 18/05/2012 11:36 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

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.

 
Postado : 18/05/2012 12:21 pm
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

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

 
Postado : 18/05/2012 12:33 pm
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

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

 
Postado : 18/05/2012 12:35 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O anexo que enviei, pode excluir as colunas "R" e "S"

Qualquer coisa da o grito.

 
Postado : 18/05/2012 12:36 pm
Página 3 / 3