Ir ao conteúdo
  • Cadastre-se

Excel Inclusão de data automática fixa no Excel a partir de outra célula.


Ir à solução Resolvido por Patropi,

Posts recomendados

Olá, Boa tarde.

 

Estou montando uma planilha simples de protocolo de processos para um setor. A primeira situação é a seguinte:

Na coluna "RECEBIDO" gostaria que a pessoa desse o recebido, e ao fazer isso, automaticamente, gostaria que a data e hora desse momento (do recebido) aparecesse automaticamente em outra coluna ao lado, a coluna "DATA DE ENTRADA". Certo! Isso eu consegui. Mas o que eu não queria é que a data e hora ficassem atualizando a cada ação e modificação na planilha, pois o importante é saber quando entrou e ficar fixo para visualizar justamente o tempo parado e para que possa contabilizar na ultima coluna da planilha, "DIAS EM ANÁLISE". Como posso fazer?

 

A Segunda situação que vem atrelado a isto, seria:

Na Coluna "DIAS EM ANÁLISE", gostaria que além da contagem dos dias em determinado setor, aparecesse as horas também. Esta sim pode ficar atualizando de acordo com  a data atualizada para que possa dar o resultado do tempo parado em cada setor. Notem que nesta coluna (DIAS EM ANÁLISE), a fórmula está vinculada justamente a DATA DE ENTRADA, ou seja, enquanto eu não tiver data de entrada deveria não aparecer informação na coluna DIAS EM ANÁLISE, enquanto isso, mesmo não havendo informações na DATA DE ENTRADA, ainda sim aparece o "erro" da fórmula. A pergunta é:

Como fazer para a coluna DIAS EM ANÁLISE aparecer a informação somente quando houver preenchimento na DATA DE ENTRADA, ou seja, ficar vazio?

 

Segue planilha em anexo com as informações aqui citadas.

 

Agradeço desde já. ;))~~

plan modelo.xlsx

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
  • Solução

Boa noite @Linhoo

 

Coloquei uma macro na planilha para inserir a data e a hora fixo na coluna C, quando é preenchida a coluna B.  ( Ao acessar a planilha, habilite as macros)

 

Na coluna G inseri uma fórmula que retorna em dias horas e minutos o tempo decorrido.

 

Não s esqueça de clicar em Curtir.

 

Se a dúvida foi sanada, marque o tópico como Resolvido.

Na minha assinatura tem um link para uma instrução de como proceder.

13_08_19_Data_Hora coluna e subtração com resultado em dias_horas_minutos_Patropi.zip

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Patropi Muito obrigado pela resolução do meu problema meu caro. Muito satisfeito!

 

Se não for pedir muito, visto que sou um usuário intermediário no Excel, ou seja, ainda em processo de aprendizagem no que diz respeito a macros, poderia me explicar o significado da fórmula aplicada na coluna "G"? 

 

Novamente, muito obrigado pela resolução da minha dúvida.

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Bom dia @Linhoo

 

A função SEERRO foi utilizada para evitar o retorno de erro nas linhas onde não tem data e hora na coluna C.

SE(MINUTO(MOD($B$2-C5;1))=0;INT($B$2-C5)&" dia(s) e "&HORA(MOD($B$2-C5;1))&" hora(s)";

Nesta primeira parte verifica se o minuto contém resto, então concatena o inteiro dos dias e o resto das horas.

INT($B$2-C5)&" dia(s), "&HORA(MOD($B$2-C5;1))&" hora e "&MINUTO(MOD($B$2-C5;1))&" minuto(s)")

Nesta segunda se os minutos não forem inteiro , pega o inteiro dos dias; o resto de horas e o resto dos minutos.

 

Todas essa funções utilizadas, podem ser estudadas separadamente pesquisando no Google assim:

(Por exemplo)

Função SEERRO do Excel.

 

Espero ter conseguido esclarecer mais um pouco.

 

[]s

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Patropi Muito grato pelas dicas. 

 

Obrigado pela força.

 

 

adicionado 46 minutos depois
13 horas atrás, Patropi disse:

Boa noite @Linhoo

 

Coloquei uma macro na planilha para inserir a data e a hora fixo na coluna C, quando é preenchida a coluna B.  ( Ao acessar a planilha, habilite as macros)

 

Na coluna G inseri uma fórmula que retorna em dias horas e minutos o tempo decorrido.

 

Não s esqueça de clicar em Curtir.

 

Se a dúvida foi sanada, marque o tópico como Resolvido.

Na minha assinatura tem um link para uma instrução de como proceder.

13_08_19_Data_Hora coluna e subtração com resultado em dias_horas_minutos_Patropi.zip 14 kB · 5 downloads

@Patropi  Com relação a Coluna "C" da planilha, como foi inserido a macro e onde posso ver esta macro? Como posso travar as datas, hora, minuto e segundos para que não alterem a cada ação na planilha? Estou tentando reaplicar as fórmulas na planilha original.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Linhoo

 

As horas inseridas pela macro na coluna C não se não se atualizam, elas são fixas.

Para ver a macro --> clique com o lado direito do Mouse no nome da planilha (Planilha1) --> selecione --> Exibir código.

 

Quanto a coluna com datas e horas, elas se atualizam porque a célula B2 se encontra com a função AGORA() que se atualiza a cada alteração na planilha.

Portanto a atualização é causada pela célula B2 e não pela formula da coluna G.

 

[]s

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Patropi Meu caro...

 

Segue em anexo planilha original a qual estou tentando montar. Veja que a mesma planilha formatada por você anteriormente aparece várias vezes, isso é, para cada recebimento de setor gostaria que ficasse do mesmo jeito. Tem condições de replicar esse código para várias colunas, para deixar a data fixa? 

 

Além disto, gostaria de saber se há como deixar a Coluna "R" (tempo em análise) fixa sem mais alteração no instante em que a opção na coluna "Q" fosse escolhida a opção "CONCLUÍDO E ENCAMINHADO", ou seja, que não mais somasse o tempo a partir desta escolha, pois não há necessidade de mensurar tempo se o documento já foi encaminhado para outro setor, entende? E a partir daí o processo se inicia novamente, e para cada encaminhamento a mesma situação explicada.

 

Grato.

 

 

Planilha de Protocolo VBA 3.rar

Link para o comentário
Compartilhar em outros sites

Veja se ajuda.

Cole uma cópia do código abaixo no lugar do existente.

Private Sub Worksheet_Change(ByVal Target As Range)
 If Left(Cells(5, Target.Column), 5) = "PROTO" Then
  Target.Offset(, 1).Value = IIf(Target.Value = "", "", Now)
 ElseIf Left(Cells(5, Target.Column), 6) = "STATUS" And Target.Value = "Concluído e Encaminhado" Then
  Target.Offset(, 1).Value = Target.Offset(, 1).Value
 End If
End Sub

 

Link para o comentário
Compartilhar em outros sites

agora, osvaldomp disse:

Veja se ajuda.

Cole uma cópia do código abaixo no lugar do existente.


Private Sub Worksheet_Change(ByVal Target As Range)
 If Left(Cells(5, Target.Column), 5) = "PROTO" Then
  Target.Offset(, 1).Value = IIf(Target.Value = "", "", Now)
 ElseIf Left(Cells(5, Target.Column), 6) = "STATUS" And Target.Value = "Concluído e Encaminhado" Then
  Target.Offset(, 1).Value = Target.Offset(, 1).Value
 End If
End Sub

 

Bom dia amigo @osvaldomp

 

Primeiramente muito obrigado pelo seu tempo.

Fiz os testes e me parece que funcionou para a planilha inteira travando a contagem do tempo ao selecionar a opção "CONCLUÍDO E ENCAMINHADO" conforme eu gostaria.

 

Porém, tem como formatar e deixar a data como o amigo @Patropi conseguiu deixar? Seria:

"15/08/19 05:32:16", ou seja, Data-Horas-minutos-segundos. Dessa forma fica mais fácil a percepção em caso de erro e até fica melhor a avaliação do tempo em relação ao objetivo da planilha.

 

Grato.

 

 

adicionado 48 minutos depois

@osvaldomp @Patropi

 

Surgiu um detalhe:

Eu percebi que cada vez que eu apertava "Delete" para apagar a informação em determinada célula na planilha acabava apagando a fórmula nela contida. Com isso, eu decidi travar as colunas que tem as fórmulas para não acontecer de apagar as fórmulas, então, fiz pelo procedimento:

Selecionei as células que gostaria de deixar livre, "Botão Direito"/"Formatar Células/"Proteção" e "Desbloquear". Posteriormente fui em "Revisão"/"Proteger Planilha"/Inseri a senha e OK. Fiz e protegeu! Deu certo o que queria, porém, toda vez que vou alimentar ou apagar dados numa coluna que vai gerar dados automaticamente na outra, que esta foi justamente a que eu protegi, aparece a informação de erro conforme imagem anexada.

Como posso resolver?

ERRO delete.png

ERRO inserção.png

Link para o comentário
Compartilhar em outros sites

2 horas atrás, Linhoo disse:

Porém, tem como formatar e deixar ..."15/08/19 05:32:16"...

O código não interfere na formatação das células. Selecione a coluna e formate como desejar.

 

Eu percebi que cada vez que eu apertava "Delete" para apagar a informação em determinada célula na planilha acabava apagando a fórmula nela contida.

Não entendi: você aperta o Delete mas não quer deletar, é isso? Essa operação tem relação com o código que postei?

A expressão "em determinada célula" é genérica e não ajuda. Você precisa informar o endereço da célula.

 

Link para o comentário
Compartilhar em outros sites

agora, osvaldomp disse:

 

O Problema é que:

1º) Eu Bloqueei o seguinte intervalo na coluna "N": N6:N33 para o caso de quando alguém apagar a data não apagar a fórmula que havia na celula.

2º) Com o intervalo na coluna "N" bloqueado, ao inserir a informação na coluna "M" para que a data seja inserida automática na coluna "N", os erros aparecem conforme anexo a postagem anterior. Eu queria que ao deletar a informação na coluna "N" ou M não alterasse a fórmula inserida na coluna M, entende? 

 

Segue planilha em anexo já funcional com seu código.

 

Planilha de Protocolo VBA TESTE CDH.rar

Link para o comentário
Compartilhar em outros sites

3 horas atrás, Linhoo disse:

1º) Eu Bloqueei o seguinte intervalo na coluna "N": N6:N33 para o caso de quando alguém apagar a data não apagar a fórmula que havia na celula.

Se o intervalo está bloqueado como alguém conseguiria apagar a data nesse intervalo ?

Essa manobra que você citou de "apagar a data não apagar a fórmula que havia na celula." não faz sentido. Se havia uma data então não havia fórmula pois a data fora inserida pelo código. Ainda, qual a necessidade de fórmulas na coluna N ? Também não faz sentido.

 

2º) Com o intervalo na coluna "N" bloqueado, ao inserir a informação na coluna "M" para que a data seja inserida automática na coluna "N", os erros aparecem conforme anexo a postagem anterior.

Óbvio, pois o código foi elaborado para operar na planilha sem ela estar protegida.

 

Eu queria que ao deletar a informação na coluna "N" ou M não alterasse a fórmula inserida na coluna M, entende? 

Primeiro, na coluna M não há fórmulas, entende ? Segundo, não mexa em N.

Tentando adivinhar: se você quer reverter a situação, ou seja, atualmente ao inserir manualmente o protocolo em M6 por exemplo, o código insere a data/hora atuais em N6, se você quiser reverter simplesmente limpe M6 que o código limpará N6, e não há que se reinserir fórmula em N6 (repetindo, não são necessárias fórmulas na coluna N).

 

 

Link para o comentário
Compartilhar em outros sites

@osvaldomp @Patropi Voltando com o término da planilha em questão, venho explicar:

 

Reparem que ao inserir a informação "RECEBIDO" na Célula "M6", de acordo com o código do amigo @osvaldomp, na célula "N6" é inserida automaticamente a data de entrada conforme eu gostaria. Ótimo. Atentem também que na coluna "N" existe a fórmula =SE([@PROTOCOLO]="";"";AGORA()) para que na coluna "R", fique vazia enquanto não inserimos informação na coluna "M". Correto?

 

O que acontece é que quando eu insiro a informação "recebido" na coluna "M" e depois, por um acaso, deleto a informação na mesma coluna, a fórmula na coluna "N" também é deletada, fazendo com que na coluna "R" volte a ficar com uma contagem infinita, ou seja, não mais ficando vazia. 

 

Eu gostaria que, ao deletar a informação inserida na coluna "M", não apagasse a fórmula na coluna "N" automaticamente, que mantivesse a fórmula para que na coluna "R" não aparecesse a contagem infinita não retornando para "VAZIA" de novo. Existe como?

 

Segue planilha em anexo.

 

ENC_PROC_VF.01.rar

Link para o comentário
Compartilhar em outros sites

Na fórmula existente em R6 acrescente a parte em vermelho, conforme abaixo.

 

=SE([@[DATA DE ENTRADA]]="";"";SEERRO(SE(MINUTO(MOD($D$2-N6;1))=0;INT($D$2-N6)&" dia(s) e "&HORA(MOD($D$2-N6;1))&" hora(s)";INT($D$2-N6)&" dia(s), "&HORA(MOD($D$2-N6;1))&" hora e "&MINUTO(MOD($D$2-N6;1))&" minuto(s)");""))

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...