Valores calculados de fórmulas em células Excel

0

Por favor, ajude-me a arruinar as férias do meu filho! (Estou fazendo ele estudar matemática).

Ele tem que fazer uma quantidade enorme de exercícios de Geometria, então eu estava pensando em usar o Excel para acompanhar o progresso: Para cada pergunta ele usaria duas células: uma para rastrear o tempo que ele começou a trabalhar na pergunta e o outro para armazenar a duração que levou para trabalhar na questão. Dessa forma, eu seria capaz de rastrear o progresso dele e também seria capaz de fazer um pouco de engenharia social, provando ao professor que ele realmente investiu algum esforço.

Agora, digamos que temos as células A1, B1 e C1 dedicadas à primeira pergunta. Minha ideia é que quando ele começar a trabalhar na questão ele vai entrar no horário atual para a célula A1. Quando ele parar de trabalhar na questão, ele entrará no horário atual para a célula B1. C1 calculará e armazenará a duração subtraindo A1 de B1. (A versão 2 talvez hospedasse um botão na célula para que clicar uma vez preenchesse A1, clicando novamente armazenaria o valor em B1 e calcularia C1:))

No entanto, se eu fizer A1 = NOW (), a hora não é um valor, mas uma fórmula que é "atualizada constantemente". O que eu quero é fazer A1 = o valor retornado de NOW no momento em que meu filho começou a processar a pergunta.

Como faço isso?

    
por Avi 14.04.2011 / 10:12

2 respostas

3
Ctrl + ; irá inserir a data atual em uma célula como um valor fixo. Combine com Shift para obter a hora atual.

Fonte: link

Nota:

Isso é para um layout de teclado padrão dos EUA. Em outros layouts de teclado, a combinação pode ser diferente; por exemplo, com um layout de teclado alemão padrão, é . em vez de ; .

    
por 14.04.2011 / 11:12
1

Eu gosto da ideia com um botão melhor, então aqui está um código que você pode usar com isso:

Global i As Integer
Sub Button1_Click()
ActiveSheet.Shapes(1).Select
If Selection.Characters.Text = "Start" Then
    i = 1
    Do Until IsEmpty(Range("A" & i).Value)
        i = i + 1
    Loop
    Range("A" & i).Value = Now()
    ActiveSheet.Shapes(1).Select
    Selection.Characters.Text = "Stop"
    Range("A" & i).Select
ElseIf Selection.Characters.Text = "Stop" Then
    Range("B" & i).Value = Now()
    Range("C" & i).Value = DateDiff("s", Range("A" & i).Value, Range("B" & i).Value)
    ActiveSheet.Shapes(1).Select
    Selection.Characters.Text = "Start"
    Range("C" & i).Select
End If

End Sub

Minhas habilidades de programação do excel podem não ser perfeitas ou efetivas, mas para isso devem ser suficientes. Certifique-se de não esquecer a variável global. Isso também pressupõe que o primeiro botão é o que contém esse código (e tem o texto "Iniciar" para começar). Calcula automaticamente o tempo usado em segundos.

    
por 14.04.2011 / 11:39