Como copiar o valor de uma célula para outra (usando uma fórmula), mas não a fórmula da célula de origem

1

Estou usando a função NOW() em muitos lugares da minha planilha, que é basicamente um documento de lista de verificação.

Portanto, minha exigência é que, para cada etapa, ela registre a data e hora em que essa etapa foi concluída. Mas sempre que o Now () estiver sendo usado ... todas as células atualizadas anteriormente com data e hora também serão atualizadas novamente. Por isso, no final do dia, não consigo obter o tempo detalhado em que cada uma dessas etapas está concluída.

Foi assim que eu criei a partir de agora:

  • Usou uma caixa de seleção para cada etapa. Quando a etapa estiver concluída, ao clicar na caixa de seleção, ela atualizará a célula A1 como "Concluída".
  • Na célula B1, eu coloquei a seguinte função que irá verificar o valor em A1. Se for "Completed", ele atualizará o valor de B1 com o datetime atual usando Now ()

    =IF(A1="Completed";NOW();"")
    

Por favor, deixe-me saber uma solução para isso. Além disso, se houver alguma outra alternativa.

    
por RODY ROY 30.03.2012 / 10:19

1 resposta

1

Isso é algo que muitas vezes tenho que fazer, mas as únicas opções que conheço são menos que ideais:

  1. Você pode copiar a célula normalmente, mas use "Colar especial" e desmarque todos, exceto "Número" ou o que quer que você queira colar.

  2. Você também pode "copiar e colar por procuração", ou seja, copiar e colar em uma caixa de texto normal (bloco de notas, barra de endereços do seu navegador favorito, janela aberta, o que for mais conveniente). Em seguida, copie esse texto e cole-o na célula.

Eu geralmente escolho o segundo método porque é muito mais rápido (porque você pode usar atalhos de teclado) do que "Colar especial".

Editar:
Eu não entendi a pergunta. Se você está procurando uma maneira de fazer isso de forma programática, é possível . Você só precisa usar a propriedade .value da célula.

Eu testei isso no LibreOffice Calc e funciona. Eu suspeito que ele também funcionaria no OpenOffice Calc, já que ele foi adaptado daquele snippet do OpenOffice que eu criei nos comentários:

Sub GetDate
    Dim myTable as Object, mySheet as Object, _
        curDate as Date, curTime as Date
    Const TRRange = "A2:F2"  'Template row range
    Const ColPosDate = 0     'Date column position
    Const ColPosTime = 5     'Time column position

    mySheet = ThisComponent.Sheets(0)
    myTable = mySheet.getCellRangeByName(TRRange)

    'curDate and curTime should be identical as they're both just NOW() cells
    ' --one formatted (for display) as date and the other as time
    curDate = myTable.getCellByPosition(ColPosDate,0).value
    curTime = myTable.getCellByPosition(ColPosTime,0).value

    print curDate
End Sub
    
por 30.03.2012 / 10:46