Experimente este código e reverta em caso de problemas. Uma pequena suposição ou restrição é que a planilha foi atualizada pelo menos uma vez do banco de dados e o conteúdo existente não é excluído posteriormente, apenas atualizado novamente conforme e quando necessário. No caso, se você limpar os dados depois de salvar e antes de fechar e, em seguida, abrir uma folha em branco toda vez que uma solução diferente for necessária.
ALT + F11 - > Editor VBA - > ThisWorkbook - > Geral - > Declarações
Public Prev_Val As Variant
Evento Workbook_Open ()
Private Sub Workbook_Open()
ThisWorkbook.Prev_Val = Sheet1.Range("A2").Value
End Sub
Em Sheet1 ou qualquer que seja o seu evento Sheet Codename - Worksheet_Change (ByVal Target As Range). Substitua Sheet1 por qualquer que seja o Codename da Sheet Sheet1 ou Sheet2 ou mais.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("A2")) Is Nothing Then
If Sheet1.Range("A2").Value = ThisWorkbook.Prev_Val + 1 Then
ThisWorkbook.Save
End If
ThisWorkbook.Prev_Val = Sheet1.Range("A2").Value
End If
End Sub
Agora, quando você abre a pasta de trabalho, a variável pública Prev_Val armazena o valor em A2 e usa-a posteriormente para comparação e continua atualizando esse valor para a atualização mais recente da A2, até você abrir a pasta de trabalho.