Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por Saulo
Posts
#64881
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
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#64883
Olá, Saulo.

Validação de Dados não lhe atende? ~~~> selecione B12:B13 | Validação | Personalizado | =E(ÉNÚM($B12);$B12<=HOJE())
Saulo agradeceu por isso
Por Saulo
Posts
#64886
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?
Por osvaldomp
#64890
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.
Saulo agradeceu por isso
Por Saulo
Posts
#64899
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
Por osvaldomp
#64905
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)
Saulo agradeceu por isso
Por Saulo
Posts
#64906
Bom Dia osvaldomp - 31 Mai 2021 às 21:14
Perfeito, Funcionou Como Planejado.
Obrigado Pela Ajuda e Parabéns Pela Dedicação.
Atenciosamente
Por osvaldomp
#64914
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
Saulo agradeceu por isso
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord