Notifications
Clear all

Ajuda VBA - Horas

7 Posts
2 Usuários
0 Reactions
1,381 Visualizações
(@miguel-70)
Posts: 0
New Member
Topic starter
 

Tenho esta macro para registrar a horas da abertura da plan em uma célula, funciona, o objetivo é registrar a horas para não voltar caso o usuário altere o horário do PC. Acontece que quando passa para o outro dia se na célula esta registrado 23:00:00, ela não reconhece que recomeçou a horário.

Private Sub Workbook_Open()
Horas
End Sub

Public Sub Horas()
If Plan1.Range("B1") <= Time Then
Plan1.Range("B1") = Time
End If
End Sub

Obrigado, aceito qualquer sugestão.

 
Postado : 11/01/2015 1:32 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite Miguel70

Experimente colocar este código no módulo da Pasta de Trabalho:

Private Sub Workbook_Open()
  Plan1.Range("B1") = Time
End Sub

Segue planilha anexada para comprovar o funcionamento.

Dê retorno.

Se a resposta foi útil, clique na mãozinha que fica do lado da ferramenta Citar.

[]s

 
Postado : 11/01/2015 3:34 pm
(@miguel-70)
Posts: 0
New Member
Topic starter
 

Obrigado Patropi, pela ajuda.
Estou postando um modelo, não tem nenhum erro, somente em esta pasta de trabalho que deve ser mudado alguma coisa, por exemplo;
Se estiver registrado na plan1 22:00hs e esta plan for aberta no outro dia então não registra mais so depois das 22:00hs
O objetivo que que o usuário caso queira apagar dados de linhas fora do horário e este vier a atrasar a horas do pc ele não consiga retornar a horas da plan1

 
Postado : 11/01/2015 4:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Eu não entendi sua dúvida, mas talvez, seria melhor proteger os dados (ou...ocultar a guia, ou usar duas guias com mesmo dados uma sem o acesso do usuário, ou proteger a guia, ou proteger as linhas, ou células ou colunas)

Para tal, veja...
http://www.google.com.br/cse?cx=partner ... gsc.page=1

Att

 
Postado : 11/01/2015 4:20 pm
(@miguel-70)
Posts: 0
New Member
Topic starter
 

Obrigado pela dica de pesquisa, ainda não encontrei a solução. Talvez não fui claro com a minha dúvida, o que eu estou buscando esta na HORAS;
Bem não é erro e sim ajuste, quando chega a meia noite (00:00:00) não reinicia a contagem das horas, porque eu não quero que reinicie esta contagem antes da meia noite, más passando para o outro dia é preciso iniciar esta contagem e como esta não reinicia a contagem, baixar o anexo e faça os teste, vai entender o que busco.

Public Sub Horas_Sistema()
If Plan1.Range("A2") <= Time Then 'AQUI PRECISA SER MUDADO
Plan1.Range("A2") = Time
End If
End Sub

ESTA PASTA DE TRABALHO
A DATA - esta ótimo, bloqueando como esperado, certo.
A HORAS - Quero que ao passar para o outro dia este código reconheça esse novo dia e inicia a contagem das horas, sem permitir que volte caso usuário atrase o relógio do PC e reabra a pasta de trabalho para apagar dados inseridos à mais de uma horas de atraso.
Baixe meu modelo.
Obrigado.

 
Postado : 12/01/2015 8:41 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não sei se entendi, mas experimente alterar a rotina na abertura do arquivo, acrescentando se a data em a1 for igual a data de ontem (Date-1) então apaga as horas

Private Sub Workbook_Open()
If Plan1.Range("A1") = Date - 1 Then Plan1.Range("A2") = ""
    OcultarMenu
    Data_Sistema
    Horas_Sistema
End Sub

Agora, se o usuário for esperto o suficiente para alterar a data do computador, desbloquear a planilha e efetuar as manutenções vai ser moleza.

 
Postado : 12/01/2015 4:46 pm
(@miguel-70)
Posts: 0
New Member
Topic starter
 

Resolvido com esta linha de código.

If Plan1.Range("A1") = Date - 1 Then Plan1.Range("A2") = ""

Minha pasta de trabalho esta completa, também o modelo esta disponível para quem trabalha com controle de veiculo, o meu caso são em média 20 veículos, ai é necessário bloquear devido; multas reclamações, etc.
Obrigado Reinaldo,
Obrigado a todos.

 
Postado : 12/01/2015 10:38 pm