Notifications
Clear all

Ajuda com VBA Label avisa data vencimento

7 Posts
2 Usuários
0 Reactions
2,312 Visualizações
(@pdnthiago)
Posts: 8
Active Member
Topic starter
 

Boa noite galera, precisando muito da ajuda de vocês.

Seguinte, tenho uma Caixa de texto com a data para o próximo contato.
E uma label que informa um aviso.

Gostaria que ao informar a data do próximo contato na caixa de texto, o label mensagem, pegasse a data de hoje e comparasse com a data da caixa de texto próximo contato, se esta vencendo hoje ou ja venceu, e ficasse em vermelho e exibisse um aviso, "entrar em contato".

Segue imagem abaixo.

 
Postado : 10/02/2014 3:05 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

pdnthiago,

Boa noite!!!

Para ficar mais fácil lhe ajudar, poste o exemplo compactado!!!

Att,

 
Postado : 10/02/2014 6:03 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

pdnThiago, as ajudas no Forum são voluntárias e dependem do tempo disponível de cada colaborador, e nem sempre acabam sendo de imediata, portanto tenha paciencia e não de UP no tópico com os dizeres "Ajuda ai gente" .

Fiquei em duvida se quer digitar a data ou a mesma será carregada automaticamente de um BD, criei as instruções basicas para fazer a comparação que pretende associada a um CommandButon, é só ajustar a sua necessidade.

Private Sub CommandButton1_Click()

    Dim sProxDataContato As Date
    Dim sDataAtual As Date
    
    'Data atual do sistema
    sDataAtual = Date
    
    'Data do Testbox Proximo Contato
    sProxDataContato = TxtDtProxContato.Value
    
    'Se a Data for Igual a data atual
    If sProxDataContato = sDataAtual Then
        
        With lbMensagem
            .Caption = "Está Vencendo Hoje"
            .BackColor = RGB(255, 0, 0)
         End With
    
    'Se a Data for Maior que a data atual
    ElseIf sProxDataContato > sDataAtual Then
        
        With lbMensagem
            .Caption = "Vencido, favor entrar em contato"
            .BackColor = RGB(255, 0, 0)
        End With
    
    End If
    
End Sub

Qq duvida retorne.

[]s

 
Postado : 10/02/2014 6:04 pm
(@pdnthiago)
Posts: 8
Active Member
Topic starter
 

pdnThiago, as ajudas no Forum são voluntárias e dependem do tempo disponível de cada colaborador, e nem sempre acabam sendo de imediata, portanto tenha paciencia e não de UP no tópico com os dizeres "Ajuda ai gente" .

Fiquei em duvida se quer digitar a data ou a mesma será carregada automaticamente de um BD, criei as instruções basicas para fazer a comparação que pretende associada a um CommandButon, é só ajustar a sua necessidade.

Private Sub CommandButton1_Click()

    Dim sProxDataContato As Date
    Dim sDataAtual As Date
    
    'Data atual do sistema
    sDataAtual = Date
    
    'Data do Testbox Proximo Contato
    sProxDataContato = TxtDtProxContato.Value
    
    'Se a Data for Igual a data atual
    If sProxDataContato = sDataAtual Then
        
        With lbMensagem
            .Caption = "Está Vencendo Hoje"
            .BackColor = RGB(255, 0, 0)
         End With
    
    'Se a Data for Maior que a data atual
    ElseIf sProxDataContato > sDataAtual Then
        
        With lbMensagem
            .Caption = "Vencido, favor entrar em contato"
            .BackColor = RGB(255, 0, 0)
        End With
    
    End If
    
End Sub

Qq duvida retorne.

[]s

Desculpe pelo Up...
e agradeço muito sua ajuda, mas seguinte, quero eu mesmo digitar a data, quero que o excel apenas avise se o contato venceu, comparando com a data do sistema. E a label Mensagem fique vermelha...

Estou postando a planilha em anexo, me ajude por favor...

pdnThiago, leia as REGRAS DO FORUM, só são permitidos arquivos Compactados, compacte o seu arquivo e poste novamente se achar que a dica abaixo não resolveu.

 
Postado : 11/02/2014 5:11 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se quer a condição apos digitar no TextBox, copie somente as instruções que postei e coloque no Evento AfterUpdate de seu TextBox, ficando assim:

Private Sub TxtDtProxContato_AfterUpdate()

    Dim sProxDataContato As Date
    Dim sDataAtual As Date
    
    'Data atual do sistema
    sDataAtual = Date
    
    'Data do Testbox Proximo Contato
    sProxDataContato = TxtDtProxContato.Value
    
    'Se a Data for Igual a data atual
    If sProxDataContato = sDataAtual Then
        
        With lbMensagem
            .Caption = "Está Vencendo Hoje"
            .BackColor = RGB(255, 0, 0)
         End With
    
    'Se a Data for Maior que a data atual
    ElseIf sProxDataContato > sDataAtual Then
        
        With lbMensagem
            .Caption = "Vencido, favor entrar em contato"
            .BackColor = RGB(255, 0, 0)
        End With
    
    End If

End Sub

Lembre-se de ajustar os nomes dos controles (TextBox e Label) de acordo com os que estão em seu Formulário.

[]s

 
Postado : 11/02/2014 6:21 pm
(@pdnthiago)
Posts: 8
Active Member
Topic starter
 

Se quer a condição apos digitar no TextBox, copie somente as instruções que postei e coloque no Evento AfterUpdate de seu TextBox, ficando assim:

Private Sub TxtDtProxContato_AfterUpdate()

    Dim sProxDataContato As Date
    Dim sDataAtual As Date
    
    'Data atual do sistema
    sDataAtual = Date
    
    'Data do Testbox Proximo Contato
    sProxDataContato = TxtDtProxContato.Value
    
    'Se a Data for Igual a data atual
    If sProxDataContato = sDataAtual Then
        
        With lbMensagem
            .Caption = "Está Vencendo Hoje"
            .BackColor = RGB(255, 0, 0)
         End With
    
    'Se a Data for Maior que a data atual
    ElseIf sProxDataContato > sDataAtual Then
        
        With lbMensagem
            .Caption = "Vencido, favor entrar em contato"
            .BackColor = RGB(255, 0, 0)
        End With
    
    End If

End Sub

Lembre-se de ajustar os nomes dos controles (TextBox e Label) de acordo com os que estão em seu Formulário.

[]s

Mauro, desculpe, mas não estou conseguindo, quando coloco la, fica vermelho direto, ou não aparece nada.
Estou mandando a planilha em anexo COMPACTADA. hehehe...

Me ajude, pois preciso desta planilha urgente.

 
Postado : 11/02/2014 6:37 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A Rotina ajustada é a abaixo, de dois clique em seu textbox txtDtCont, e cole esta.

Private Sub txtDtCont_AfterUpdate()

    Dim sProxDataContato As Date
    Dim sDataAtual As Date
    
    'Data atual do sistema
    sDataAtual = Date
    
    'Data do Testbox Proximo Contato
    sProxDataContato = txtDtCont.Value
    
    'Se a Data for Igual a data atual
    If sProxDataContato = sDataAtual Then
        
        With lblMensagem
            .Caption = "Está Vencendo Hoje"
            .BackColor = RGB(255, 0, 0) 'Cor do Fundo Vermelho
            .ForeColor = RGB(255, 255, 255) 'Cor da Fonte Branca
         End With
    
    'Se a Data for Maior que a data atual
    ElseIf sProxDataContato > sDataAtual Then
        
        With lblMensagem
            .Caption = "Vencido, favor entrar em contato"
            .BackColor = RGB(255, 0, 0) 'Cor do Fundo Vermelho
            .ForeColor = RGB(255, 255, 255) 'Cor da Fonte Branca
        End With
    
    End If

End Sub

Quanto a ficar tudo vermelho é porque a cor da fonte do Label esta definida como vermelha tambem, fiz este ajuste na rotina acima.

Faça os testes e veja se é isto.

[]s

 
Postado : 11/02/2014 6:53 pm