Ir ao conteúdo

Excel Gerar um novo início do contrato, tipo semi-automático


Ir à solução Resolvido por Midori,

Posts recomendados

Postado

Prezados, boa noite!

 

Gostaria mais uma vez contar coma ajuda de vocês com a seguinte questão.

 

Uma fórmula para gerar um novo início do contrato da seguinte forma:

 1 - Se a data do termino for igual a hoje e na coluna I constar PRORROGADO: iniciar um novo ciclo, de modo que a data do termino mais 1 dia será o novo início.

 2 - Caso a coluna J constar ENCERRADO não gerar um novo ciclo.

 

 

 

JMBS

Controle de vencimentos.xlsx

Postado

@Jmbs Se quiser resolver com fórmula terá que criar outra coluna para aplicar a fórmula com esses critérios. Ou pode atualizar a data de inicio com macro, aí só tem que definir um evento (clique do botão, edição da célula, etc).

Postado

@Jmbs Pode ser em qualquer coluna na mesma linha data. Se for na K, pode colocar em K6 e arrastar para as demais linhas. Fiz uma correção na fórmula,

 

=SE(J6="ENCERRADO";"";SE(E(F6=$C$2;I6="PRORROGADO");F6+1;E6))

 

Postado

@Midori

 Não correspondeu.

Observei que na linha 6. O contrato teve início em 02/01/2023 e terminou 01/02/2023.

 Na J6 inseri PRORROGADO, e funcionou novo 02/02/2023.

 Como houve um novo contrato, o termino não alterou porque ele esta contanto os 30 dias a partir da E6.

 

 

Termino.png

Postado

@Jmbs A coluna termino não vai alterar mesmo já que está usando só fórmula em outra auxiliar. Se quiser alterar essa coluna terá que usar macro. Nesse caso o valor de termino deve ser 02/02/2023?

Postado

@Jmbs Remova a coluna da fórmula e cole a macro no módulo,

 

Sub MacroTermino()
    Call AtualizaData([B5].CurrentRegion, Date)
End Sub

Sub AtualizaData(Tabela As Range, Data As Date)
    Const COL_TERM  As Integer = 5
    Const COL_PAR1  As Integer = 8
    Const COL_PAR2  As Integer = 9
    Dim Linha       As Long
    
    For Linha = 2 To Tabela.Rows.Count
        If Tabela(Linha, COL_PAR2).Value <> "ENCERRADO" Then
            If Tabela(Linha, COL_TERM).Value = Data _
            And Tabela(Linha, COL_PAR1).Value = "PRORROGADO" Then
                Tabela(Linha, COL_TERM).Value = _
                    Tabela(Linha, COL_TERM).Value + 1
            End If
        End If
    Next Linha
End Sub

 

Você deve definir um evento para chamar o procedimento MacroTermino, mas pode executar manualmente para testar.  

Postado

@Jmbs Não funcionou em que sentido? Nenhum deles atende as condições para mudar alguma data de termino. Mas se colocar a data de hoje em F6 para testar, verá que ela será modificada se executar a macro manualmente já que não definiu nenhum evento para executar automaticamente.

Postado

@Midori

1 - Em relação a prorrogação estava prorrogando por mais 1 dia, fiz o ajuste para 30 dias e passou atender a minha necessidade. Ou seja, em relação a PRORROGAÇÃO resolvido.

2 - Em relação ao ENCERRAMENTO, ao executar a macro a data de término permanece travada, ótimo. Mais dias a vencer continua contando, porque está com fórmula. Tem como ser através da macro?

3 - Outra questão podemos excluir a coluna J e usarmos a coluna I para ambos (PRORROGADO OU ENCERRADO)?

  • Solução
Postado
33 minutos atrás, Jmbs disse:

Mais dias a vencer continua contando, porque está com fórmula. Tem como ser através da macro?

Não entendi essa parte.

 

A macro modificada para verificar só a coluna I e agora somando 30,

 

Sub AtualizaData(Tabela As Range, Data As Date)
    Const COL_TERM  As Integer = 5
    Const COL_PAR1  As Integer = 8
    Dim Linha       As Long
    
    For Linha = 2 To Tabela.Rows.Count
        If Tabela(Linha, COL_PAR1).Value <> "ENCERRADO" Then
            If Tabela(Linha, COL_TERM).Value = Data _
            And Tabela(Linha, COL_PAR1).Value = "PRORROGADO" Then
                Tabela(Linha, COL_TERM).Value = _
                    Tabela(Linha, COL_TERM).Value + 30
            End If
        End If
    Next Linha
End Sub

 

  • Curtir 1
Postado

@Midori

 

A ideia seria,  parar de contar os dias a vencer (limpar a célula) a partir do momento que a escolha for ENCERRADO. Tentei usar a formula SE, mais não deu certo...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!