Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Registro Entrada e Hora Extra
- Valderei
- Colaborador
- Mensagens: 47
- Registrado em: Qui Dez 27, 2012 9:57 pm
- Localização: Caxias do Sul - RS
Registro Entrada e Hora Extra
Olá pessoal, tudo bem.
Preciso de mais uma ajuda dos senhores com duas questões de VBA.
Como todos sabemos, trabalhar com horas e datas no #excel é sempre um pouco mais complicado do que parece.
Eu tenho um formulário, onde registro alguns atendimentos de pós-vendas onde trabalho e gostaria de poder controlar as horas dispendidas nestes trabalhos, minha ideia é a seguinte:
01 textbox registra a entrada pela manhã;
01 textbox registra a saída do almoço;
01 textbox registra a entrada da tarde;
01 textbox registra a saída do fim do dia;
01 textbox registra a soma destes horários e outro fará a contagem das horas extras.
Algumas coisas já estão andando, a parte de entradas e saídas, porém preciso fazer algo que, ao passar de 08:48 horas, seja exibido este valor excedido no textbox de hora extra.
Vou compartilhar um arquivo, onde estão as textboxes e os códigos que montei até o momento.
Outra situação, é que no textbox de saída para almoço, se colocar 12:00, o excel entende como meia noite e fica 00:00, alguém sabe como resolver isso, mas sem adicionar o AM/PM?
Obrigado e desculpe pelo textão!!!
Preciso de mais uma ajuda dos senhores com duas questões de VBA.
Como todos sabemos, trabalhar com horas e datas no #excel é sempre um pouco mais complicado do que parece.
Eu tenho um formulário, onde registro alguns atendimentos de pós-vendas onde trabalho e gostaria de poder controlar as horas dispendidas nestes trabalhos, minha ideia é a seguinte:
01 textbox registra a entrada pela manhã;
01 textbox registra a saída do almoço;
01 textbox registra a entrada da tarde;
01 textbox registra a saída do fim do dia;
01 textbox registra a soma destes horários e outro fará a contagem das horas extras.
Algumas coisas já estão andando, a parte de entradas e saídas, porém preciso fazer algo que, ao passar de 08:48 horas, seja exibido este valor excedido no textbox de hora extra.
Vou compartilhar um arquivo, onde estão as textboxes e os códigos que montei até o momento.
Outra situação, é que no textbox de saída para almoço, se colocar 12:00, o excel entende como meia noite e fica 00:00, alguém sabe como resolver isso, mas sem adicionar o AM/PM?
Obrigado e desculpe pelo textão!!!
- Anexos
-
- Registro Ponto.rar
- (13.46 KiB) Baixado 890 vezes
- Valderei
- Colaborador
- Mensagens: 47
- Registrado em: Qui Dez 27, 2012 9:57 pm
- Localização: Caxias do Sul - RS
Re: Registro Entrada e Hora Extra
Boa noite pessoal!!
Desculpe ser chato e insistente, mas alguém tem uma ideia de como contornar minha situação?
Obrigado.
Desculpe ser chato e insistente, mas alguém tem uma ideia de como contornar minha situação?
Obrigado.
- Rafael Monteiro
- Consultor
- Mensagens: 277
- Registrado em: Seg Nov 28, 2011 8:27 am
- Localização: Sorocaba - SP
- Contato:
Re: Registro Entrada e Hora Extra
Boa noite Valderei, eu já montei um projeto de cálculo de horas. Entrada, almoço, retorno e Saída. E tinha também o cálculo de hora extra. Posso lhe passar umas ideias. Amanhã te dou um retorno.
ABS.
ABS.
- Valderei
- Colaborador
- Mensagens: 47
- Registrado em: Qui Dez 27, 2012 9:57 pm
- Localização: Caxias do Sul - RS
Re: Registro Entrada e Hora Extra
Olá Rafael, muito obrigado pelo retorno.
Sei que o Excel eh um tanto "chato" para trabalhar com horas, ficarei muito agradecido pela sua ajuda.
Abraço .
Sei que o Excel eh um tanto "chato" para trabalhar com horas, ficarei muito agradecido pela sua ajuda.
Abraço .
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Registro Entrada e Hora Extra
Não entendi sua demanda:
"...ao passar de 08:48 horas..."
Em que momento essa "comparação" deve ser feita?
Se o valor for maior que o esperado; por exemplo 8:52; o que fazer ? TextTotal= 8:48 e textExtra= 0:04?
"... se colocar 12:00..."
Não consegui reproduzir o reportado, em seu modelo digitando 12:00, o text permanece como 12:00
Como é feita sua entrada de dados?
"...ao passar de 08:48 horas..."
Em que momento essa "comparação" deve ser feita?
Se o valor for maior que o esperado; por exemplo 8:52; o que fazer ? TextTotal= 8:48 e textExtra= 0:04?
"... se colocar 12:00..."
Não consegui reproduzir o reportado, em seu modelo digitando 12:00, o text permanece como 12:00
Como é feita sua entrada de dados?
- Valderei
- Colaborador
- Mensagens: 47
- Registrado em: Qui Dez 27, 2012 9:57 pm
- Localização: Caxias do Sul - RS
Re: Registro Entrada e Hora Extra
Reinaldo, boa noite.
Então, no exemplo eu apenas deixei a parte do código que estou montando, mas a base toda, é feita sobre o modelo do Tomás.
Desta forma, sempre que digito "12:00", ele é exibido no textbox, porém ao salvar na planilha e reabrir o formulário, o horário altera para "00:00".
Sobre o Textbox de hora extra, a resposta é sim, eu gostaria que ele já assumisse os valores superiores à 08:48, conforme você postou:
Textbox01 = 08:52
Textbox02: 00:04
Montei algo que poderá ajudar, ele já tem os dados na planilha e carrega os mesmos para ela, onde pode ser visto o erro das 12:00 horas.
Reinaldo, obrigado por tirar este tempo para me responder.
Então, no exemplo eu apenas deixei a parte do código que estou montando, mas a base toda, é feita sobre o modelo do Tomás.
Desta forma, sempre que digito "12:00", ele é exibido no textbox, porém ao salvar na planilha e reabrir o formulário, o horário altera para "00:00".
Sobre o Textbox de hora extra, a resposta é sim, eu gostaria que ele já assumisse os valores superiores à 08:48, conforme você postou:
Textbox01 = 08:52
Textbox02: 00:04
Montei algo que poderá ajudar, ele já tem os dados na planilha e carrega os mesmos para ela, onde pode ser visto o erro das 12:00 horas.
Reinaldo, obrigado por tirar este tempo para me responder.
- Anexos
-
- Registro Ponto - Vs.02.rar
- (22.21 KiB) Baixado 785 vezes
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Registro Entrada e Hora Extra
experimente
"...e reabrir o formulário..."
altere a linha o retorno da planilha (para o item com "problema" ou todos de horas)
de Me.TextBoxSaida01.Text = .Cells(indiceRegistro, colSaida01).value
para:Me.TextBoxSaida01.Text = TimeValue(.Cells(indiceRegistro, colSaida01).Text)
Para as horas experimente:
altere rotina TextBoxSaida02_Exit para:
adicione a seguinte rotina:
"...e reabrir o formulário..."
altere a linha o retorno da planilha (para o item com "problema" ou todos de horas)
de Me.TextBoxSaida01.Text = .Cells(indiceRegistro, colSaida01).value
para:Me.TextBoxSaida01.Text = TimeValue(.Cells(indiceRegistro, colSaida01).Text)
Para as horas experimente:
altere rotina TextBoxSaida02_Exit para:
Código: Selecionar todos
Private Sub TextBoxSaida02_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBoxSaida02.Text <> vbNullString Then
TextBoxSaida02.Text = Format(CDate(TextBoxSaida02.Text), "hh:mm")
Else: TextBoxSaida02.Value = "00:00"
End If
End Sub
Código: Selecionar todos
Private Sub TextBoxSaida02_AfterUpdate()
Dim horasDecorridas As String
'Efetuar diferença entre hora de saida e hora de entrada, descontando o intervalo
horasDecorridas = TimeValue(TextBoxSaida02.Text) - TimeValue(TextBoxEntrada02.Text) + (TimeValue(TextBoxSaida01.Text) - TimeValue(TextBoxEntrada01.Text))
TextBoxHora01.Text = Format(horasDecorridas, "hh:mm")
End Sub{/code]
altere a rotina TextBoxHora01_Change conforme abaixo
[code]Private Sub TextBoxHora01_Change()
If TextBoxHora01.Text <> vbNullString Then
If TimeValue(TextBoxHora01) > TimeValue("08:48") Then
TextBoxExtra01 = Format(TimeValue(TextBoxHora01.Text) - TimeValue("08:48"), "hh:mm")
TextBoxHora01.Text = "08:48"
End If
Else
TextBoxHora01.Text = Format(CDate(TextBoxHora01.Text), "hh:mm")
End If
End Sub
- Valderei
- Colaborador
- Mensagens: 47
- Registrado em: Qui Dez 27, 2012 9:57 pm
- Localização: Caxias do Sul - RS
Re: Registro Entrada e Hora Extra
Reinaldo escreveu: ↑Sex Set 06, 2019 5:21 pm experimente
"...e reabrir o formulário..."
altere a linha o retorno da planilha (para o item com "problema" ou todos de horas)
de Me.TextBoxSaida01.Text = .Cells(indiceRegistro, colSaida01).value
para:Me.TextBoxSaida01.Text = TimeValue(.Cells(indiceRegistro, colSaida01).Text)
Para as horas experimente:
altere rotina TextBoxSaida02_Exit para:adicione a seguinte rotina:Código: Selecionar todos
Private Sub TextBoxSaida02_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBoxSaida02.Text <> vbNullString Then TextBoxSaida02.Text = Format(CDate(TextBoxSaida02.Text), "hh:mm") Else: TextBoxSaida02.Value = "00:00" End If End Sub
Código: Selecionar todos
Private Sub TextBoxSaida02_AfterUpdate() Dim horasDecorridas As String 'Efetuar diferença entre hora de saida e hora de entrada, descontando o intervalo horasDecorridas = TimeValue(TextBoxSaida02.Text) - TimeValue(TextBoxEntrada02.Text) + (TimeValue(TextBoxSaida01.Text) - TimeValue(TextBoxEntrada01.Text)) TextBoxHora01.Text = Format(horasDecorridas, "hh:mm") End Sub{/code] altere a rotina TextBoxHora01_Change conforme abaixo [code]Private Sub TextBoxHora01_Change() If TextBoxHora01.Text <> vbNullString Then If TimeValue(TextBoxHora01) > TimeValue("08:48") Then TextBoxExtra01 = Format(TimeValue(TextBoxHora01.Text) - TimeValue("08:48"), "hh:mm") TextBoxHora01.Text = "08:48" End If Else TextBoxHora01.Text = Format(CDate(TextBoxHora01.Text), "hh:mm") End If End Sub
Reinaldo, boa tarde.
Acabo de testar sua instrução e funcionou perfeitamente!!!
Meus parabéns e muito obrigado por ter me ajudado com este dilema...