Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Formatar [hora:minuto:segundo] ao digitar.[RESOLVIDO]
- costaribeiro
- Colaborador
- Mensagens: 96
- Registrado em: Ter Mar 04, 2014 10:10 am
- Localização: Pouso Alegre - MG
Formatar [hora:minuto:segundo] ao digitar.[RESOLVIDO]
Olá pessoal,
Sempre estou tentando ajudar alguém com relação ao Excel, mas meus conhecimentos ainda são parcos. Uma amiga tem uma planilha de banco de horas de uma turma do plantão de um hospital. Ela me perguntou se tem como digitar os valores de [hora:minuto:segundo] e os caracteres intercessores ":" apareçam automaticamente a cada dois dígitos colocados (segundo ela, isso agiliza o trabalho) nas CÉLULAS. Pesquisei um VBA que pudesse ajudar, mas não consegui nada. Anexo a planilha dela.
EXEMPLO:
Ao digitar: 034506 → autoformata para: 03:45:06
Não sei se fui claro.
Quem puder dar uma força, será legal!
Sempre estou tentando ajudar alguém com relação ao Excel, mas meus conhecimentos ainda são parcos. Uma amiga tem uma planilha de banco de horas de uma turma do plantão de um hospital. Ela me perguntou se tem como digitar os valores de [hora:minuto:segundo] e os caracteres intercessores ":" apareçam automaticamente a cada dois dígitos colocados (segundo ela, isso agiliza o trabalho) nas CÉLULAS. Pesquisei um VBA que pudesse ajudar, mas não consegui nada. Anexo a planilha dela.
EXEMPLO:
Ao digitar: 034506 → autoformata para: 03:45:06
Não sei se fui claro.
Quem puder dar uma força, será legal!
- Anexos
-
- Planilha B. Horas Berenice.rar
- Arquivo com proteção SEM SENHA.
- (10.36 KiB) Baixado 328 vezes
Editado pela última vez por costaribeiro em Seg Dez 22, 2014 10:54 am, em um total de 2 vezes.
Re: Formatar [hora:minuto:segundo] ao digitar.
Olá costaribeiro,
segue o codigo abaixo que eu utilizo:
Troque "TxtHrChegada" para o nome da sua textbox correspondente.
Qualquer duvida estamos ai.
abraços.
segue o codigo abaixo que eu utilizo:
Código: Selecionar todos
Private Sub TxtHrChegada_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Limita a Qde de caracteres
TxtHrChegada.MaxLength = 5
Select Case KeyAscii
Case 8, 48 To 57 ' BackSpace e numericos
If Len(TxtHrChegada) = 2 Or Len(TxtHrChegada) = 6 Then
TxtHrChegada.Text = TxtHrChegada.Text & ":"
SendKeys "{End}", False
End If
Case Else ' o resto é travado
KeyAscii = 0
End Select
End Sub
Qualquer duvida estamos ai.
abraços.
- costaribeiro
- Colaborador
- Mensagens: 96
- Registrado em: Ter Mar 04, 2014 10:10 am
- Localização: Pouso Alegre - MG
Re: Formatar [hora:minuto:segundo] ao digitar.
Amigão, obrigado.
Ótima resposta. Mas no caso, não é uma textbox e sim células.
Tem como?
Ótima resposta. Mas no caso, não é uma textbox e sim células.
Tem como?
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Formatar [hora:minuto:segundo] ao digitar.
Veja se atende
- Anexos
-
- Planilha B. Horas Berenice.xlsm.zip
- (19.08 KiB) Baixado 357 vezes
- costaribeiro
- Colaborador
- Mensagens: 96
- Registrado em: Ter Mar 04, 2014 10:10 am
- Localização: Pouso Alegre - MG
Re: Formatar [hora:minuto:segundo] ao digitar.
RMarco,
Fechou! Muito bom! Vai ajudar muita gente.
Vou colocar aqui seu código para o pessoal do forum:
Valeu!
Fechou! Muito bom! Vai ajudar muita gente.
Vou colocar aqui seu código para o pessoal do forum:
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Função para entrar Horas sem digitar os ":"
'Por: José Luiz Martins
Dim TimeStr As String
On Error GoTo EndMacro
If Application.Intersect(Target, Range("C5:C25,D5:D25,E5:E25,H5:H25,I5:i25")) Is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
If IsNull(Target.Value) Then Exit Sub
Application.EnableEvents = False
With Target
If .HasFormula = False Then
Select Case Len(.Formula)
Case 1 To 2 ' ex: 12 = 12:00:00
TimeStr = "00:00" & ":" & .Formula
Case 3 ' ex:, 735 = 00:07:35
TimeStr = "00:0" & Left(.Formula, 1) & ":" & Right(.Formula, 2)
Case 4 ' ex:, 1234 = 12:34
TimeStr = "00:" & Left(.Formula, 2) & ":" & Right(.Formula, 2)
Case 5 ' ex:, 12345 = 1:23:45 e não 12:03:45
TimeStr = Left(.Formula, 1) & ":" & _
Mid(.Formula, 2, 2) & ":" & Right(.Formula, 2)
Case 6 ' ex:, 123456 = 12:34:56
TimeStr = Left(.Formula, 2) & ":" & _
Mid(.Formula, 3, 2) & ":" & Right(.Formula, 2)
Case Else
Err.Raise 0
End Select
.Formula = Format(TimeValue(TimeStr), "hh:mm:ss")
End If
End With
Application.EnableEvents = True
Exit Sub
EndMacro:
MsgBox "Você não entrou com uma Hora válida."
Range(Target.Address).Select
Selection.ClearContents
Application.EnableEvents = True
End Sub
- costaribeiro
- Colaborador
- Mensagens: 96
- Registrado em: Ter Mar 04, 2014 10:10 am
- Localização: Pouso Alegre - MG
Re: Formatar [hora:minuto:segundo] ao digitar.[RESOLVIDO]
Um detalhe importante aqui...
Somente com "hh:mm" como devo proceder no código?
Obrigado.
Somente com "hh:mm" como devo proceder no código?
Obrigado.