K tomu rušivému prepočítaniu: Najjednoduchšie by asi bolo pridať tlačidlá, ktorými by používateľ spúšťal prepočet explicitne a automatické prepočítavanie by tam nebolo.
Ak to ale chceš prepočítavať automaticky po zmene na liste 1, tak do neho môžeš pridať takéto makro:
Public UpdatedAt
Private Sub Worksheet_Change(ByVal Target As Range)
UpdatedAt = Now
End Sub
Potom by malo stačiť už len upraviť začiatok makier na ostatných listoch na niečo takéto:
Dim UpdatedAt
Private Sub Worksheet_Activate()
If UpdatedAt = Worksheets("List1").UpdatedAt Then Exit Sub
UpdatedAt = Worksheets("List1").UpdatedAt
...