Página 1 de 1

Comparações de Datas

Enviado: 31 Mai 2021 às 09:48
por Saulo
Bom Dia!
Na Planilha em Anexo, Solicito Se Possível, Criar Uma Macro de Forma a Não Permitir que as Data Inicio (célula B12) OU Data Fim (célula B13), sejam maiores que a data atual.
Se possível enviar um aviso: "Data Início ou Data Fim Não Podem Ser Maior Que a Data Atual do Sistema"
Desde Já Agradeço

Re: Comparações de Datas

Enviado: 31 Mai 2021 às 10:37
por osvaldomp
Olá, Saulo.

Validação de Dados não lhe atende? ~~~> selecione B12:B13 | Validação | Personalizado | =E(ÉNÚM($B12);$B12<=HOJE())

Re: Comparações de Datas

Enviado: 31 Mai 2021 às 10:54
por Saulo
Olá osvaldomp - 31 Mai 2021 às 11:37
Então...A questão é que na planilha atual já existem nas células B12 e B13 validações de dados.
Se possível, acho que a solução seria ser via macro.
O que Você Acha?

Re: Comparações de Datas

Enviado: 31 Mai 2021 às 11:08
por osvaldomp
Olá, Saulo - 31 Mai 2021 às 11:54.

Eu sugiro tentar primeiro por Validação.

Talvez seja possível associar a Validação existente com a nova, para isso você precisa informar com exatidão quais as restrições que você deseja para B12 e também para B13.

Se não for viável por Validação então poderemos fazer por macro.

Re: Comparações de Datas

Enviado: 31 Mai 2021 às 12:59
por Saulo
Olá! osvaldomp - 31 Mai 2021 às 11:54
Então...
Atualmente existem as seguintes validações de dados:
1) Em “B12” (Data Inicial): Não é permitido digitar uma data maior do que “B13” (Data Final)
Assim está a fórmula: =E(ÉNÚM($B$12);$B$12<=$B$13+((HOJE()+3^8)*($B$13=0)));
2)Em “B13” (Data Final): Não é permitido digitar uma data menor do que “B12” (Data Inicial)
Assim está a fórmula: =E(ÉNÚM($B$13);$B$13>=$B$12;$B$12>0).
OBS: Se Possível, Favor avaliar a melhor alternativa, ou seja, mantendo a validação atual acrescentada de uma nova conforme sugerido por você em : =E(ÉNÚM($B12);$B12<=HOJE()), ou desenvolver uma Macro.
Ressalva: Particularmente Tenho Preferência Pela Macro, pois seria um aprendizado para mim, mas Quaisquer das duas alternativas atendem, fica a seu critério decidir, o importante é manter as validações atuais.
Desde já agradeço

Re: Comparações de Datas

Enviado: 31 Mai 2021 às 20:14
por osvaldomp
Olá, Saulo » 31 Mai 2021 às 13:59

Veja se as fórmulas abaixo funcionam a contento (se atendem às restrições existentes e também às novas). Se sim, então faremos uma solução via macro com base nelas e mantendo o seu código atual que insere maiúsculas em B10.

Tanto na Validação de B12 quanto de B13 desmarque a opção Ignorar em branco.

Em B12 ~~~> =E(ÉNÚM(B12);B12<=HOJE();B12<=B13+((HOJE())*(B13=0)))

Em B13 ~~~> =E(ÉNÚM(B13);B13<=HOJE();B13>=B12)

Re: Comparações de Datas

Enviado: 01 Jun 2021 às 08:45
por Saulo
Bom Dia osvaldomp - 31 Mai 2021 às 21:14
Perfeito, Funcionou Como Planejado.
Obrigado Pela Ajuda e Parabéns Pela Dedicação.
Atenciosamente

Re: Comparações de Datas

Enviado: 01 Jun 2021 às 12:57
por osvaldomp
Salve, @Saulo .

Instale uma cópia do código abaixo no lugar do existente.
Antes de testar remova a Validação de B12:B13.
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 If Target.Count > 1 Then Exit Sub
 If Target.Value = "" Then Exit Sub
 If Target.Address = "$B$10" Then
  If Not Target.Text = UCase(Target.Text) Then
   Target.Value = UCase(Target.Text)
  End If
 ElseIf Not Intersect([B12:B13], Target) Is Nothing Then
  If Not IsDate(Target.Value) Or Target.Value > Date Then
   MsgBox "INSIRA UMA DATA IGUAL OU ANTERIOR AO DIA DE HOJE": Target.Value = "": Exit Sub
  ElseIf Target.Address = "$B$12" And [B13] <> "" Then
   If Target.Value > [B13] Then MsgBox "Data Início NÃO PODE SER MAIOR DO QUE Data Fim": Target.Value = "": Exit Sub
  ElseIf Target.Address = "$B$13" And [B12] <> "" Then
   If Target.Value < [B12] Then MsgBox "Data Fim NÃO PODE SER MENOR DO QUE Data Início": Target.Value = "": Exit Sub
  End If
 End If
End Sub

Re: Comparações de Datas

Enviado: 11 Jun 2021 às 10:30
por Saulo
Bom Dia, osvaldomp - 01 Jun 2021 às 13:57
Funcionou, Muito Obrigado.
Obrigado Pela Ajuda.
Att