Como ter uma fórmula trabalhando no plano de fundo de uma célula no Mircosoft Excel e permitir que um usuário insira dados?

1

Estou tentando criar uma planilha que irá compilar os dados de várias células.

Essencialmente, quero que a célula A1 em Sheet1 e Sheet2 reflita a mesma informação imputada pelo usuário sem excluir a fórmula quando os dados são imputados.

Eu preciso que os usuários possam inserir dados nessas células, mas usando '= Folha2! A1' ou '= Folha1! A1' Estou criando uma referência circular e também deixando a fórmula capaz de ser excluída pelos usuários .

Alguém pode recomendar uma maneira de resolver isso?

Obrigado

    
por Sean7147 20.10.2016 / 13:55

2 respostas

3

Você não pode inserir dados em uma célula que contenha uma fórmula, preservando a fórmula ao mesmo tempo.

Uma solução é fazer com que o usuário insira dados em uma célula diferente e, em seguida, faça referência a essa célula em A1 de ambas as planilhas.

    
por 20.10.2016 / 14:30
0

Você não pode fazer isso sem uma macro. Este código deve funcionar:

Private Sub Worksheet_Change(ByVal Target As Range)
    therow = 1
    thecolumn = 1
    Dim wks As Worksheet
    cellrow = Target.Row
    cellcolumn = Target.Column
    If (cellrow = therow And cellcolumn = thecolumn) Then
        Set wks = ThisWorkbook.Worksheets("Sheet2")
        wks.Cells(cellrow, cellcolumn) = Target.Value
    End If
End Sub

Abra macros com ALT + F11 , clique duas vezes em Folha1 no lado esquerdo e cole o código no lado direito. Esse código é executado em Sheet 1 , então copia as alterações em Sheet1 A1 para Sheet2 A1 .

Toda vez que há uma alteração na planilha, essa macro é executada. Ele verifica se a célula alterada está na linha 1 e na coluna 1 (célula A1) e copia o valor na mesma célula em Folha2 .

Se você quiser verificar as alterações de Folha2 para Folha1 também, então:

  1. Clique duas vezes em Folha2 no lado esquerdo.
  2. Cole o código no lado direito.
  3. Altere a linha Set wks = ThisWorkbook.Worksheets("Sheet2") para indicar o novo destino: Set wks = ThisWorkbook.Worksheets("Sheet1") .

Neste momento, esta macro usa as variáveis therow e a coluna para tomar a decisão de copiar o valor para a outra planilha. No início, eles são definidos como 1 nas linhas therow=1 e thecolumn=1 , o que significa que estamos interessados na célula A1 . Além disso, verificamos se a célula modificada corresponde a esses valores na linha If (cellrow = therow And cellcolumn = thecolumn) Then .

Você pode modificar os valores para personalizá-lo de acordo com suas necessidades, mesmo verificando uma coluna ou linha completa, por exemplo:

A alteração da linha de verificação para If (cellcolumn = thecolumn) Then copia as alterações que ocorrem na coluna que têm o mesmo valor que a variável thecolumn , independentemente da linha.

Outro exemplo:

A alteração da linha de verificação para If (cellcolumn > thecolumn) Then copiará as alterações que ocorrerem em qualquer coluna maior que o valor de thecolumn , independentemente de qual linha seja.

    
por 20.10.2016 / 15:06