Rafa,
Então cara, é um pouco complicado explicar se você não é familiarizado com VBA, até porque cada um tem uma forma de programar (pois pensamos diferente).
Se você pretende aprender a programar, eu te recomendo o livro Programando Excel VBA Para Leigos; eu peguei com ele
De qualquer forma tentei descrever abaixo, mas não sei se você vai conseguir entender...
O código que fiz não foi incluído em um módulo, mas na primeira aba, dessa forma:
O que mandei o código fazer é, basicamente, sempre que você alterar algo na primeira aba, o Excel verificará se a célula alterada encontra-se na coluna B e, caso sim, atualiza os dados da segunda aba.
Abaixo posto o código utilizado, com comentários. Vai ficar mais fácil de ler se você copiar e colar em um módulo qualquer do Excel (porque ele pinta os comentários de outra cor).
Código: Selecionar todosPrivate Sub Worksheet_Change(ByVal Target As Range) 'Executar toda vez que algo mudar (change) na aba CLIENTE
'Observação: Variante "Target" já definida na declaração acima (ByVal Target As Range); refere-se à célula que foi alterada (change)
Dim cell As Range 'Determinar variante Range (intervalo
On Error GoTo Erro 'Se der erro, é que não funcionou; dar mensagem ao usuário
If Target.Column = 2 Then 'Se a coluna da célula alterada for igual a 2, então... (2 pois é a coluna B)
Application.ScreenUpdating = False 'Desabilitar atualizações de tela (isso faz com que a macro fique uns... milésimos mais rápida nesse caso; coloquei mais por uma questão de costume
If Target = "" Or Target.Row <> Sheets(2).Range("B1000000").End(xlUp).Row Then 'Executar se: a) a célula que foi alterada foi deletada, ou b) a linha da célula alterada for diferente da última linha preenchida na planilha "SITUAÇÃO FINANCEIRA"
Sheets(2).ListObjects("Tabela5").Resize Range("$B$2:$N$" & Sheets(1).Range("B1000000").End(xlUp).Row & "") 'Se tudo isso for verdadeiro, redefinir o tamanho da tabela da aba SITUAÇÃO FINANCEIRA, para o seguinte endereço: B2:N? - sendo "?" igual à última linha da aba "CLIENTE".
'Quando uma tabela é redimencionada, ela puxa as fórmulas para baixo automaticamente... então dá certo. Se não fosse uma tabela, eu teria que adicionar aqui o comando Range("x").filldown, que é o equivalente a você apertar CTRL + D no teclado
End If
Cells(Target.Offset(1, 0).Row, 2).Select 'Seleciona uma célula abaixo da célula alterada (só um detalhe)
Application.ScreenUpdating = True 'Reabilitar atualizações de tela
End If
Exit Sub 'Sair da macro
Erro: 'Se veio para cá, é sinal que deu erro. Avisar usuário
MsgBox "Aviso: as fórmulas da aba " & Sheets(2).Name & " não puderam ser atualizada automaticamente!", vbExclamation
End Sub