Notifications
Clear all

Parar um contagem regressiva

17 Posts
2 Usuários
0 Reactions
5,695 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá pessoal! Alguém saberia me ensinar como eu poderia parar uma contagem regressiva.
Exemplo:
Prazo:---------Contagem----------- Situação.
30/05/11------=A1-Hoje()-------------OK

Em A1 eu tenho a data que é o prazo;
Em B1 a formula que esta fazendo a contagem regressiva;
Em C1 eu escrevo OK se o fornecedor entregou dentro do prazo;

Eu gostaria de colocar um SE, qdo eu escrever OK no campo Situação e a contagem parasse.
Alguém poderia me ajudar.
Obrigado!

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/05/2011 8:03 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Aurimar, complementando a explicação do Edson, apesar de voce dizer que refez o procedimento e o mesmo está OK, então supondo que está digitando "OK" somente na coluna em questão "AN??" - "Col 40", sem problemas, mas se for digitar na Coluna "BA??" - "Col 53", mais precisamente em BA12, você não terá o resultado correto, devido as celulas mescladas que conteem as datas de Prazo = "Entrega e Reajuste" não terem a mesma qde de celulas mescladas, o que influi diretamente no resultado devido utilizarmos a Referencia Target, mas se a intensão é só digitar na Col 40 (AN??), desconsidere meu comentário.

Agora quanto a questão de devolver a Formula para a Celula qdo apagar o "OK" ou digitar outro valor qq, cheguei a conclusão que o ideal seria criar uma função, agora se for utiliza-la para as outras colunas, tem que, ou refazer o Layout da mesma ou criar outras formulas para cada situação.

Nesta Rotina, utilizei a Instrução Select Case, para capturar a Coluna em que estamos digitando, assim só rodará a function, se digitarmos nas Colunas determinadas nos cases, neste caso, só deixei as colunas 40 e 52, se for utilizar outras é só aumentar os Cases, não esquecendo de alterar o Layout conforme comentei acima.

Conforme orientação anterior do Edson, em sua Guia ADMINISTRAÇÂO, substitua a rotina pelas abaixo :

Dim MyCol As Variant
Dim sUcase, sCelPrazo, sResultado

Private Sub Worksheet_Change(ByVal Target As Range)

MyCol = Target.Column 'Captura o Numero da Coluna

    sCelPrazo = Cells(Target.Row, MyCol - 10).Address(0, 0) 'Celula com a Data Prazo
    sResultado = Cells(Target.Row, MyCol - 2).Address(0, 0) 'Celula do resultado
    
    On Error Resume Next 'Evita msg de Erro se Valor da Celula Vazia
    sUcase = UCase(Target.Value) 'Armazena o Valor da Celula
    
    Application.EnableEvents = False
 
    'Se Colunas coincidirem chama a Function
    Select Case MyCol 'Numero das Colunas
    
        Case 40 'Coluna 40
            CalculaPrazo (MyCol)
        Case 52 'Coluna 52
            CalculaPrazo (MyCol)
           
    End Select
       
    Application.EnableEvents = True
    
End Sub

Function CalculaPrazo(MyCol As Integer)
    
    If UCase(sUcase) <> "OK" Then
        Range(sResultado).Formula = "=" & sCelPrazo & "-TODAY()"
        Exit Function
    Else
        Range(sResultado).Value = Range(sResultado).Value
    End If

End Function

Faça os testes e qq coisa retorne.

ET :Achei melhor anexar o modelo em que fiz as alterações e adicionei as explicações, acho que será mais facil de compreender.

abraços

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/05/2011 2:49 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal, obrigado pelo empenho de todos, eu mudei o layout do formulario e consegui resolver o meu problema.
um abraço a todos.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 04/06/2011 8:56 pm
Página 2 / 2