Página 1 de 1

Inserir Hora através de Macro

Enviado: 29 Mar 2017 às 13:29
por RODRIGOCASTRO
Boa tarde, tenho uma planilha voltada a controle de produçao, nessa planilha tenho alguns dados que serao inseridos manualmente, porem nos campos, "data inicio", "hora inicio", "data termino" e "hora termino", quero que na hora em que seja "clicado" no botao iniciado, seja inserido automaticamente a data e hora de inicio, cada um na celula correspondente, e a mesma funçao quando "clicado" em finalizado, ressalto tambem que preciso que quando clicado, seja preenchido a hora e data e que nao seja mais alterado, que é o caso de quando usamos a formiula "=agora()".. Sera que alguem consegue me ajudar.. Anexei a planilha para melhor visualizacao, os campos que preciso que seja alterado estao mesclados de vermelho e amarelo.. Obrigado!

Re: INSERIR HORA ATRAVES DE MACRO

Enviado: 29 Mar 2017 às 16:08
por osvaldomp
Olá, Rodrigo.

A forma como você fez, colocando "Caixas de Seleção" (que você chamou de botões) para sinalizar início e fim, torna difícil uma solução pois é necessário que a macro identifique qual "Caixa" foi marcada.

Uma outra ideia seria simplesmente selecionar a célula da coluna 'E' para sinalizar o início e a célula da coluna 'G' para sinalizar o fim de determinada peça. Outra opção seria dar duplo clique na célula. Em ambas, pode ser criada uma caixa de mensagem pedindo confirmação da operação de início e de término. Há interesse?

Re: INSERIR HORA ATRAVES DE MACRO

Enviado: 29 Mar 2017 às 17:38
por RODRIGOCASTRO
Boa tarde Osvaldo,

Preciso de uma maneira que possa controlar inicio e fim das peças, se conseguir me explicar por favor a maneira que sugeriu com certeza tentarei.. Obrigado..

Re: INSERIR HORA ATRAVES DE MACRO

Enviado: 29 Mar 2017 às 22:36
por osvaldomp
Olá, Rodrigo.

Seguem duas sugestões.

opção1 - dispara o código ao selecionar uma célula da coluna 'E' ou da coluna 'G'
Código: Selecionar todos
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Column <> 5 And Target.Column <> 7 Or Target.Locked = True Then Exit Sub
 If MsgBox("Confirma o lançamento de data e hora?", vbYesNo + vbQuestion) = vbNo Then Exit Sub
 Me.Protect "SuaSenha", UserInterFaceOnly:=True
 Target.Value = Date: Target.Offset(, 1) = Time
 Target.Locked = True: Target.Offset(, 1).Locked = True
End Sub
opção2 - dispara o código ao aplicar duplo clique em uma célula da coluna 'E' ou da coluna 'G'
Código: Selecionar todos
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Column <> 5 And Target.Column <> 7 Or Target.Locked = True Then Exit Sub
 If MsgBox("Confirma o lançamento de data e hora?", vbYesNo + vbQuestion) = vbNo Then Exit Sub
 Me.Protect "SuaSenha", UserInterFaceOnly:=True
 Target.Value = Date: Target.Offset(, 1) = Time
 Target.Locked = True: Target.Offset(, 1).Locked = True: Cancel = True
End Sub
1. funcionamento - o código irá inserir a data na célula selecionada/clicada e a hora na célula à direita, e irá bloquear ambas as células
2. preparação da planilha - antes de instalar um dos códigos, em uma planilha vazia, coloque os títulos de coluna na linha 1 (desejável que essas células sejam protegidas) e só isso (nunca mescle células)
3. não utilize os dois códigos simultaneamente na mesma planilha
4. coloquei nos códigos um comando para exibir uma caixa de mensagem pedindo a confirmação da operação, se desejar inibir a caixa coloque um apóstrofo no início da linha ('If MsgBox ...)
5. substitua a senha no código se desejar
6. lembrando que para impedir o fácil acesso de outros usuários ao editor de VBA, onde a senha poderá ser vista, proteja o Projeto VBA ---> Ferramentas / Propriedades / Proteção
7. para instalar os códigos:
Instale o código no módulo da planilha, assim:
a. copie o código daqui
b. clique com o direito na guia da planilha de interesse e escolha 'Exibir código'
c. cole o código na janela em branco que vai se abrir
d. feito! 'Alt+Q' para retornar para a planilha e testar

INSERIR HORA ATRAVES DE MACRO

Enviado: 30 Mar 2017 às 08:51
por RODRIGOCASTRO
Bom dia Osvaldo,

fiz todo o passo a passo que vc me indicou e nao acontece nada quando usei qualquer um dos dois codigos.. Anexei a nova planilha teste se voce quiser dar uma olhada.. Obrigado..

Re: INSERIR HORA ATRAVES DE MACRO

Enviado: 30 Mar 2017 às 09:28
por osvaldomp
Rodrigo, desculpe, faltou dizer para você desbloquear as células.

Selecione toda a planilha (clique no pequeno retângulo à esquerda da letra que identifica a coluna 'A'), clique com o direito sobre qualquer parte da planilha ---> Formatar células / Proteção / desmarque Bloqueadas / OK

Re: INSERIR HORA ATRAVES DE MACRO

Enviado: 30 Mar 2017 às 17:11
por RODRIGOCASTRO
Boa tarde Osvaldo,

otimo, deu certo, ficou otimo assim.. Obrigado..