
Eu sei deixar o valor de uma célula depender de outra célula (usando = na fórmula da célula alvo).
Porém, é possível fazer uma ligação igual, de forma que se eu alterar o valor da célula A, o valor seja imediatamente copiado para a célula B, mastambémse eu alterar o valor da célula B, a célula A também será alterada?
Basicamente seria a "mesma" célula, mas em dois locais, para que os dados possam ser alterados de forma conveniente dependendo da planilha em que você se encontra.
Responder1
Você pode fazer isso usando uma macro VBA que captura oWorksheet.Change
evento. Por exemplo, este código manterá as células B2
e D10
na mesma planilha sincronizadas:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.EnableEvents = False
If Target.Address = "$B$2" Then
Range("$D$10").Value = Target.Value
ElseIf Target.Address = "$D$10" Then
Range("$B$2").Value = Target.Value
End If
Application.EnableEvents = True
End Sub
No editor VBA esse código deve ser armazenado na planilha na qual você deseja detectar a alteração, não na pasta de trabalho ou em um módulo. Se precisar que as duas células estejam em planilhas diferentes, você precisará de duas macros, uma para cada planilha.
Observe que precisamos desabilitar os eventos antes que nossa macro altere a célula vinculada, caso contrário, essa alteração acionará outro evento e o Excel ficará preso em um loop infinito. Esteja ciente de que se o seu código sair com um erro enquanto os eventos estiverem desabilitados, você precisará executar uma macro manualmente para reativá-los.