Isso não pode ser feito apenas com a fórmula. Mas com o código VBA a seguir, isso é baseado no evento SelectionChange , funciona:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Const SourceCell = "$A$1"
Const TargetCell = "$A$2"
If Target.Address = SourceCell Then
If Range(SourceCell).Value > 0 Then
Range(TargetCell).Value = Range(SourceCell).Value
End If
End If
End Sub
Ou, se você quiser ter mais células de origem e de destino (conforme solicitado posteriormente):
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim SourceCells(), TargetCells() As Variant
Dim i As Integer
' Make sure the cells are declared with $'s
' Make sure that the arrays contain the same number of elements
SourceCells = Array("$B$1", "$B$2", "$F$5")
TargetCells = Array("$A$1", "$A$2", "$H$12")
For i = 0 To UBound(SourceCells)
If Target.Address = SourceCells(i) Then
If Range(SourceCells(i)).Value > 0 Then
Range(TargetCells(i)).Value = Range(SourceCells(i)).Value
End If
End If
Next i
End Sub
Coloque este código dentro do código VBA da planilha onde você quer que isso seja feito. Para fazer isso, siga estas instruções:
- No Excel, com a sua pasta de trabalho aberta, clique em
ALT
+F11
. Isso abre o editor do VBA. - Verifique a árvore "Projeto" à esquerda, encontre sua pasta de trabalho do Excel e a planilha. Clique com o botão direito do mouse (com o mouse) nessa planilha e selecione
View Code
. - Copie e cole o código acima no editor.
- Feche o editor do VBA e tudo deve funcionar como esperado.