Tenho duas planilhas, quero que a segunda planilha seja atualizada assim que uma pessoa alterar a primeira planilha. Posso fazer isso com uma instrução if simples, mas ela não será atualizada até que a pessoa que trabalha na primeira planilha a feche e reabra.
É possível fazer isso automaticamente?
Responder1
Vejo pelo comentário de uma resposta excluída que as planilhas a serem atualizadas estão em outros computadores. Esta atualização não é possível, na minha opinião, a menos que alguém escreva uma macro para as planilhas remotas que verifique regularmente a data de modificação na planilha de origem e se atualize, se necessário. O documento, neste caso, deve estar em um compartilhamento de rede pública e o trabalho está longe de ser fácil.
Sua outra opção, se todos os usuários tiverem acesso à Internet, é usar uma planilha on-line para colaborar apenasumplanilha. Existem vários produtos online, mesmo gratuitos, que podem servir para esse propósito.
Você deve nos fornecer mais detalhes sobre seu ambiente e o que é desejado ou possível nele.
Responder2
Você pode definir uma macro worksheet_change na primeira planilha que atualizará a segunda planilha. O código seria mais ou menos assim:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wbk2 As Workbook, wbk1 As Workbook, sht1 As Worksheet, sht2 As Worksheet
Set wbk1 = ActiveWorkbook
Set sht1 = ActiveSheet
on error resume next
set wkb2=workbooks("myfile.xlsx")
if err<>0 then
err.clear
Set wbk2 = Workbooks.Open("\\remotecomputer\folder\myfile.xlsx")
end if
on error goto 0
Set sht2 = wbk2.Sheets("mySheet2")
sht2.Cells(1, 1) = "I have updated range " & Target.Address & " in sheet " & sht1.Name & " to value " & Target.Value
wbk2.Close True
End Sub