Página 1 de 1

Mudar cor de textbox conforme data

Enviado: 26 Set 2016 às 09:17
por hpernaf
Olá a todos! Sou novo por aqui e abri o tópico, pois não encontrei nada semelhante sobre o assunto.

Estou criando um controle de licenças utilizando o VBA com o Excel. Tenho um textbox onde irá me apresentar uma data que cadastrei e gostaria de mudar a cor dele caso a data esteja expirada.
Por exemplo: Se a data apresentada for menor que a data de hoje, então o textbox deve ficar vermelho.
Se a data for maior ou igual a data de hoje, então o textbox não deve ser formatado.
Caso o textbox esteja em branco (sem nenhum valor), ele também deverá ficar sem nenhuma formatação.

Dentro do textbox tentei inserir o seguinte código.

If me.textbox < Date Then
textbox.BackColor = 'cor vermelho
end if

If me.textbox ="" Then
textbox.BackColor = 'cor branco
Me.txtbox.ForeColor = 'cor preto
end if

Alguém tem alguma sugestão? O que eu quero é basicamente uma formatação condicional, onde eu possa abrir o form todos os dias para ver se alguma licença venceu, ou seja, se em alguma consulta apresente uma data menor do que hoje em vermelho.

Re: Mudar cor de textbox conforme data

Enviado: 26 Set 2016 às 10:11
por hpernaf
Eu acho que minha lógica até está relativamente certa. Mas estou errando na hora de comparar a data do textbox com a data atual. O que acham?

Re: Mudar cor de textbox conforme data

Enviado: 26 Set 2016 às 10:52
por alexandrevba
Boa dia!!

Você consegue adaptar?
Código: Selecionar todos
Private Sub txtData_AfterUpdate()

Dim temp As Date, msg As String
    If Me.txtData.Value = "" Then Exit Sub
    With Me.txtData
        If Not IsDate(.Value) Or .Value Like "*[!0-9/]*" Then
            msg = "Entre com a data como 31/12/2016"
        Else
            temp = CDate(.Value)
            .Value = Format$(temp, "dd/mm/yyyy")
        End If
    End With
    If Len(msg) Then
        MsgBox msg
        Exit Sub
    End If
    If temp < Date Then
        txtData.BackColor = vbRed 'Coloca a cor Vermelha no fundo do textbox
        'MsgBox "A data deve ser maior ou igual a data atual"
    Else
        'faça alguma coisa
    End If
End Sub
Favor ler as regras, indique as postagens cruzadas:
http://www.planilhando.com.br/forum/vie ... 79#p111179

Att