Excel - entrada do usuário, mas retém a fórmula para duas células circulares

4

Estou tentando fazer com que duas células mantenham a fórmula de plano de fundo após a entrada do usuário e tenham uma fórmula circular.

A1 = Lbs
A2 = Kgs

Formula
A1 = A2*2.2
A2 = A1/2.2

Eu sei sobre o tópico abaixo, mas não consigo fazer isso funcionar para fórmulas circulares. Eu usei o cálculo iterativo de preferência. Excel - como ter entrada direta de dados ou valor de célula da fórmula

    
por Jason Brady 26.06.2017 / 02:22

1 resposta

6

O Excel não funciona assim.

Se ambas as células tiverem fórmulas, não haverá onde obter um valor de entrada. É por isso que isso não funcionará com referências circulares.

Uma célula pode ter uma fórmula ou um valor. Se você inserir um valor em uma célula que tenha uma fórmula, a fórmula será sobrescrita. O que você está tentando alcançar exigirá pelo menos três células: uma célula de entrada para o valor, uma célula para a unidade e uma terceira célula para o resultado da conversão. Você pode até querer adicionar uma quarta célula para a unidade do resultado. Considere esta captura de tela:

O valor é inserido em B2, a unidade do valor é especificada em C2. A conversão é calculada em B3

=IF(C2="lbs",B2/2.2,B2*2.2)

A unidade do resultado é calculada em C3 com =IF(C2="Kgs","Lbs","Kgs") , mas esse bit é opcional.

Editar:vocêpodeusaroVBAparaconverterovalorecolocá-lonaoutracélula.Issopodeserfeitosemescreverumafórmulanacélula,noentanto.SevocêjáusaoVBA,tambémpodefazerocálculonoVBAemvezdeusaroVBAparagravarumafórmulaemumacélula.AquiestáoVBAparaisso:

PrivateSubWorksheet_Change(ByValTargetAsExcel.Range)IfNotIntersect(Target,Range("A1:A2")) Is Nothing Then
    If Target.Count = 1 Then
        Application.EnableEvents = False
        If Target.Row = 1 Then
            Target.Offset(1, 0) = Target / 2.2
        Else
            Target.Offset(-1, 0) = Target * 2.2
        End If
        Application.EnableEvents = True
    End If

End If
End Sub
    
por 26.06.2017 / 02:36