Ir ao conteúdo

Excel Formatação condicional para preenchimento de data via vba


Ir à solução Resolvido por Midori,

Posts recomendados

Postado

@LaerteB @Midori Gostaria de tirar uma dúvida, atualmente tenho dois códigos para formatação de data. Um permiti preencher a textbox com a adição de barras e números de caracteres automaticamente (11/20/2020). O outro código bloqueia o registro, caso a textbox, seja preenchida com uma data invalida, por exemplo, 31/02/2020. No entanto, agora preciso adicionar uma terceira condição, que é bloquear o preenchimento da primeira textbox, caso a data digitada seja igual a hoje ou inferior a data de hoje (=hoje()). E uma quarta condição, que bloquei o preenchimento da data em uma segunda textbox caso o valor seja inferior a data de hoje

 

Segue em anexo os comando que já uso para as outras duas condições. Desde já agradeço a disponibilidade. :D

 

 

'Primeiro código

Private Sub txtlista_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

txtlista.MaxLength = 10 'Permite digitar no máximo 10 caracteres

Select Case KeyAscii

Case 8 'Aceita o BACK SPACE

Case 13: SendKeys "{TAB}" 'Emula o TAB

Case 48 To 57

If txtlista.SelStart = 2 Then txtlista.SelText = "/" 'insere barra ao digitar dia"

If txtlista.SelStart = 5 Then txtlista.SelText = "/" 'insere barra ao digitar mes

Case Else: KeyAscii = 0 'Ignora os outros caracteres

End Select

End Sub

'Segundo código


Private Sub txtdatareav_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If Not IsDate(txtdatareav) And txtdatareav <> "" Then 'valida Data

MsgBox "data inválida"

txtela = ""

Cancel = True

End If

End Sub

 

  • Solução
Postado

@josequali Para bloquear,

 

Private Sub txtlista_Change()
    If IsDate(txtlista) And Len(txtlista) = 10 Then
        If CDate(txtlista) <= Date Then
            txtlista.Enabled = False
        End If
    End If
End Sub

Para habilitar novamente é só atribuir Enabled = True.

Postado

.

adicionado 10 minutos depois

@Midori Elaborei mal a pergunta, na verdade tem que ser da seguinte forma.

 

Data de elaboração: 27/08/2020.       Data de Revisão: 27/12/2020

Se as textbox forem preenchidas assim,ele deve deixar o cadastro continuar, porque a data de cadastro é inferior a de revisão

 

Agora, se for assim

Data de elaboração: 27/08/2020.       Data de Revisão: 27/12/2019.

 

Ele deve bloquear o cadastro, porque a data de revisão é inferior a data de cadastro. 

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