Ir ao conteúdo
  • Cadastre-se

Excel Só permitir uma data, nada mais que isso na célula, Excel 2007


Ir à solução Resolvido por Bikke,

Posts recomendados

Boa tarde

 

Venho solicitar ajuda para uma situação, sff.

 

Pretendo que, na célula J8, só seja permitido colocar uma data, exemplo: 10-02-2024, não quero que coloquem texto ou mesmo fórmulas, como por exemplo: =HOJE().

 

Eu sei que =HOJE() pertence ao Excel, mas não quero que isso seja permitido.

 

Já fui em Dados/Validação de Dados/Definições/etc/etc, conforme está na imagem abaixo

 

Validaodedados.png.55a61ec17d5c909a9b2f969740320a5b.png

 

 

Mas deixa colocar fórmulas na célula J8, e eu não quero que isso seja possível.

 

É possível fazer isso em VBA e que só seja permitido colocar uma data e nada mais??

 

Se for possível fazer isto em VBA, pretendia também que, se não colocarem uma data, que apareça uma mensagem a dizer: "Dados inseridos não permitidos, favor de colocar uma data válida. Obrigado."

 

E após isso que limpe os dados inseridos na célula J8.

 

Obrigado desde já.

 

Bom fim de semana

 

Cumps

Lançamento.de.Horas.xls

Link para o comentário
Compartilhar em outros sites

  • Solução

Boa noite

 

Consegui resolver

 

E como tal, coloco aqui a solução.

 

Validaodedados_1.png.5dc136d5d3f2d37ee41413c9492929da.png

 

Em Q1 e Q2, coloquei as fórmulas a não serem permitdas. ( podem ser colocadas mais fórmulas a não serem permitas, e alarga-se nas células Q )

E na Validação de dados, coloquei a seguinte fórmula: =SE(SE.ERRO(PROCV(J8;$Q$1:$Q3;1;0);"")="";VERDADEIRO;FALSO)

 

Se o mesmo for possível fazer em VBA, agradecia.

 

Obrigado

 

P.S. - Segue em anexo a planilha

 

Lançamento.de.Horas.xls

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

Veja se este código no módulo da planilha atende.

A célula J8 não deve estar mesclada.

 

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address <> "$J$8" Then Exit Sub
 If Target.Value = "" Then Exit Sub
 If IsDate(Target.Value) = False Or Target.HasFormula Then Target.Value = "": MsgBox "COLOQUE UMA DATA VÁLIDA"
End Sub

 

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

14 horas atrás, DJunqueira disse:

A fórmula na validação tb poderia ser:

 

=SE((J8=HOJE())+(J8=AGORA());0;1)

 

Boa noite DJunqueira

 

Sim, fui testar e funciona sim.

 

Obrigado

 

Cumps

 

..............................................................................................................xxx..........................................................................................

 

Boa noite OreiaG

 

É exactamente isso que pretendia.

 

Obrigado

 

Cumps

  • Curtir 2
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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!