Ir ao conteúdo

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


Ir à solução Resolvido por Bikke,

Posts recomendados

Postado

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

  • Membro VIP
Postado

Boas Bikke

 

Eu fiz um teste aqui com validação de dados com fórmula e com macro, mas se digitar a função hoje() ele aceita.

Vamos ver se algum colega sabe algo que contorne essa situação.

 

Bom fim de semana

  • Curtir 1
  • Solução
Postado

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
Postado

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
Postado
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

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!