Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Regra DataDiff

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Euber Ferraz
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Sex Jun 30, 2017 2:43 pm

Regra DataDiff

Mensagem por Euber Ferraz »

olá pessoal, estou com dificuldades para criar uma regra com DataDiff para gerar paramentro em datas de vencimento com base na data atual do sistema, segue exemplo:

Data de Vencimento: 30/08/2019
05/08/2019
05/07/2019
a) Quando faltar 15 dias para vencer começar contagem regressiva, caso contrario "Dentro do Prazo"

b) Se vencida "Vencida"

c) Se vencida a mais de 30 dias "Crítico"

Agradeço pela ajuda.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Regra DataDiff

Mensagem por Reinaldo »

Algum motivo especifico para utilizar DataDiff?
Pelo exposto a simples diferença de data, aparentemente, atende
Supondo que o comparativo seja Vencimento vx Data de Hoje; teremos Algo +/- assim:

Código: Selecionar todos

=SE(DataVencimento-DataHoje>15;"No Prazo";SE(E(DataVencimento-DataHoje>0;DataVencimento-DataHoje<16);"Faltam "&DataVencimento-DataHoje&" dias para Vencer";SE(E(DataVencimento-DataHoje<0;DataVencimento-DataHoje>-31);"Vencido";"Critico")))


Euber Ferraz
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Sex Jun 30, 2017 2:43 pm

Re: Regra DataDiff

Mensagem por Euber Ferraz »

Obrigado por atender Reinaldo.

Como estou usando UserForm, criei uma Sub para fazer a regra como você sugeriu, porem esta com um probleminha:

Private Sub StatusVencimento()
Dim DataBase As Date
Dim Vencimento As Date
Dim QuardaStatus As String

DataBase = Format(Now, "yyyy-mm-dd")

If Vencimento - DataBase > 15 Then
QuardaStatus = "Dentro do Prazo"
ElseIf Vencimento - DataBase > 0 And Vencimento - DataBase < 16 Then
QuardaStatus = "À Vencer"
ElseIf Vencimento - DataBase < 0 And Vencimento - DataBase > -31 Then
QuardaStatus = "Vencido"
Else
QuardaStatus = "Crítico"
End If

End Sub

Usei como exemplo os vencimentos abaixo e DataBase 10/08/2019:

06/07/2019 "Crítico" - OK
04/08/2019 " Dentro do Prazo", deveria ser "vencido"
10/08/2019 "Vencido" OK
28/08/2019 "Dentro do Prazo" OK
24/08/2019 "Dentro do Prazo" deveria ser "À Vencer"

Agradeço se analisar.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Regra DataDiff

Mensagem por Reinaldo »

Na rotina acima não é indicado como é obtido o valor da Variável Vencimento? Assim fica dificil entender o que ocorre.
Mas tentemos supondo que a origem seja planilha coluna "A"
Veja no anexo a coluna B o retorno
Anexos
StVenc.zip
(13.05 KiB) Baixado 228 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder